使用Ansible快速批量的给机器配置免秘钥登录

安素 2021年03月17日 832次浏览

概述

  • 使用ansible批量部署的前提是ansible主控机器能免秘钥的登录被管理的机器,ansible自带这种功能,我们需要用到ansible的authorized_key模板

生成密钥

首先要在ansible主控机器上生成好公私秘钥

ssh-keygen

配置inventory hosts

编辑ansible inventory hosts
vim /etc/ansible/hosts

在hosts中添加ssh主机IP和密码
121.122.123.87 ansible_ssh_user=webop ansible_ssh_pass="weboppass"
121.122.123.89 ansible_ssh_user=webop ansible_ssh_pass="weboppass"

编写playbook

vim /data/ssh.yml

- hosts: all
  user: root
  tasks:
    - name: ssh-copy
      authorized_key: user=root key="{{ lookup( 'file', '/root/.ssh/id_rsa.pub')}}"
      tags:
        - sshkey

配置ansible 不检测host key(配置完密钥后记得删除此配置)

vim /etc/ansible/ansible.cfg
[defaults]
forks          = 8           #执行时并发数
host_key_checking = False    #不检测host key

执行playbook

ansible-playbook /data/ssh.yml