Ansible:自动化运维工具html
为何要创建互信:ansible批量配置管理的前提是管理机和被管理机ssh互信,即经过将管理主机的公钥(id_rsa.pub
)添加到目标主机上,实现管理机不经过交互式输入密码就能够登陆目标主机。bash
创建互信:运维
一、生成秘钥对ssh
$ ssh-keygen -t rsa
一路回车便可工具
二、创建互信:测试
格式: ssh-copy-id -i ~/.ssh/id_rsa.pub username@[ip,hostname] //[]内为目标主机的信息
spa
$ ssh-copy-id -i ~/.ssh/id_rsa.pub username@192.168.1.2
根据提示完成操做即完成了互信。code
批量创建互信:htm
经过上面方法创建少许的互信操做起来还OK,可是若是目标主机数量多的状况下再手动的执行就太慢了,因此这里采用ansible的authoried_keys
模块进行批量创建互信blog
参考:http://docs.ansible.com/authorized_key_module.html
一、配置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
二、创建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') }}"
三、执行
$ ansible-playbook pushssh.yaml
四、测试
命令:ansible test -m ping
返回绿色SUCCESS,表明互信成功能够批量执行ansible命令了。