美文网首页沙大斌ansible
利用Ansible 批量推送公钥

利用Ansible 批量推送公钥

作者: 自由如风才是少年的梦 | 来源:发表于2022-07-13 16:29 被阅读0次

    前言

    利用ansible 自动化运维工具实现批量推送公钥。

    1、安装Ansible服务端

    • yum安装
    yum install epel-release  
    yum install ansible -y
    
    • 查看安装版本
    # ansible --version
    ansible 2.9.6
      配置文件路径config file = /etc/ansible/ansible.cfg
      查询模块路径configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
      ansible python module location = /usr/lib/python2.7/site-packages/ansible
      executable location = /usr/bin/ansible
      python version = 2.7.5 (default, Aug  7 2019, 00:51:29) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]
    

    二、playbook 批量推送

    • 首先配置不检测对方主机公钥
    # vim ansible.cfg
    [defaults]
    host_key_checking = False  #取消注释
    
    • 执行命令生成公钥
    ssh-keygen    
    
    • 编写playbook文件
    # cat send-pubkey.yml
    - hosts: all
      remote_user: root   # 连接远程主机的用户,密码就是文件中设置好的 ansible_ssh_pass 的值
      vars_files:
        - foo.yml    # 设置用户名密码 由于我是root用户且密码全为 1  ansible_ssh_pass: 1
      tasks:
      - name: Set authorized key taken from file
        authorized_key:    # 发送公钥的模块
          user: root            # 给这个用户发送公钥
          state: present
          key: "{{ lookup('file', '/root/.ssh/id_rsa.pub') }}"    # 发送本地用户的公钥路径
    
    • 编辑foo.yml文件 设置密码
    # vim foo.yml
    ansible_ssh_pass: 1  
    #这里我是密码全为1 ,如果不是 请自行百度: 多主机且密码不一样时如何书写yml文件
    
    • 编辑资产文件hosts
    # vim hosts
    [webserver]
    ...
    [dbserver]
    ...
    
    • 执行
    ansible-playbook -i hosts send-pubkey.yml
    
    • 验证
    ansible all -i hosts -m ping
    

    *#注意以上配置文件放在同一个目录下执行

    相关文章

      网友评论

        本文标题:利用Ansible 批量推送公钥

        本文链接:https://www.haomeiwen.com/subject/geltirtx.html