天天看点

利用Ansible 批量推送公钥前言1、安装Ansible服务端二、playbook 批量推送

前言

利用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  #取消注释
           
  • 执行命令生成公钥
  • 编写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]
...
           
  • 执行
  • 验证

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

继续阅读