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 [email protected]
根据提示完成操作即完成了互信。
批量建立互信:
通过上面方法建立少量的互信操作起来还OK,但是如果目标主机数量多的情况下再手动的执行就太慢了,所以这里采用ansible的authoried_keys
模块进行批量建立互信
参考:http://docs.ansible.com/authorized_key_module.html
1、配置hosts文件(ansible的目标主机定义文件)
$ cat /etc/ansible/hosts [test]
192.168.12.5[:] #表示192.168.12.-192.168.12.54
192.168.12.5[:]
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命令了。