使用Ansible快速批量的给机器配置免秘钥登录
概述
- 使用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