ansible 和 saltstack 一样都是基于 Python 开发的,是比 puppet 和 saltstack 更轻量级的运维自动化工具。无服务器端,使用时直接运行命令即可,不需要在被管控主机上安装任何客户端,所以任何一台机器只要安装了 ansible 就可以管控其他主机。基于模块工作,可使用任意语言开发模块。也可使用 yaml 语言定制剧本 playbook;基于SSH工作;可实现多级指挥。
准备三台机器 Centos7,这两台机器都关闭 selinux,清空 iptables 规则并保存。
slaver:192.168.67.129
slaver:192.168.2.133
两台都设置,若机器太多,可以通过搭建 DNS,则不用在每台机器上设置这个
192.168.67.129 slaver2.test.com
192.168.67.133 slaver3.test.com
在 master 上
[root@tree ~]# vim /etc/sysconfig/network
HOSTNAME=master.test.com
在 slaver 上
[root@tree ~]# vim /etc/sysconfig/network
HOSTNAME=slaver.test.com
//Ansible仓库默认不在yum仓库中,因此我们需要使用下面的命令启用epel仓库
[root@tree ~]# yum install -y epel-release
//使用yum安装Ansible
[root@tree ~]# yum install -y ansible
在Ansible服务端生成密钥,并且复制公钥到节点中。
[root@tree ~]# ssh-keygen -t rsa //一路回车下去
[root@tree ~]# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
使用ssh-copy-id命令来复制Ansible公钥到节点中
[root@tree ~]# ssh-copy-id -i root@192.168.2.72 //输入yes和密码
[root@tree ~]# ssh-copy-id -i root@192.168.2.73 //输入yes和密码
[root@tree ~]# vim /etc/ansible/hosts
[test-servers]
192.168.67.129
192.168.67.132
192.168.67.133