ansible实现批量建立互信

Ansible:自动化运维工具

为什么要建立互信:ansible批量配置管理的前提是管理机和被管理机ssh互信,即通过将管理主机的公钥(id_rsa.pub)添加到目标主机上,实现管理机不通过交互式输入密码就可以登录目标主机。

建立互信

1、生成秘钥对

$ ssh-keygen -t rsa

一路回车即可

2、建立互信:

格式: ssh-copy-id -i ~/.ssh/id_rsa.pub username@[ip,hostname]  //[]内为目标主机的信息

$ ssh-copy-id -i ~/.ssh/id_rsa.pub username@192.168.1.2

根据提示完成操作即完成了互信。

批量建立互信

通过上面方法建立少量的互信操作起来还OK,但是如果目标主机数量多的情况下再手动的执行就太慢了,所以这里采用ansible的authoried_keys 模块进行批量建立互信

参考:http://docs.ansible.com/authorized_key_module.html

1、配置hosts文件(ansible的目标主机定义文件)

$ cat /etc/ansible/hosts

[test]
192.168.12.5[1:4]       #表示192.168.12.51-192.168.12.54
192.168.12.5[6:9]
192.168.13.101
192.168.13.103

2、建立playbook(称为剧本,ansible按它中的配置批量执行命令)

$ cat pushssh.yaml
--- - hosts: test #test对呀hosts文件中的主机组名称 # 互信用户 user: abm tasks: - name: ssh-copy authorized_key: user=hoxis key="{{ lookup('file', '/home/abm/.ssh/id_rsa.pub') }}"

3、执行

$ ansible-playbook pushssh.yaml

4、测试

命令:ansible test -m ping

返回绿色SUCCESS,代表互信成功可以批量执行ansible命令了。

猜你喜欢

转载自www.cnblogs.com/-abm/p/11224902.html