1、安装前的准备:
实验机的安装配置请参见 《VMware --- CentOS6.x 实验机的安装配置》
用途规划:
角色 | 主机名 | IP | 组名 | 备注 |
---|---|---|---|---|
Master | test-135-46 | 192.168.135.46 | - - | CentOS 7 |
Slave | test-135-45 | 192.168.135.45 | webs | CentOS 6 |
Slave | test-135-44 | 192.168.135.44 | webs | CentOS 6 |
- Master 主机与两台 Slave 主机之间配置 ssh 互信,配置方法请参见 《Linux -- SSH 免密码登录》
注:
为了提升效率,ansible 使用了 SSH 的 ControlPersist、ControlMaster 特性。而该特性,应该需要在 5.6 或以上版本才能实现,CentOS6.x 上默认版本为 5.3,在实际测试过程中,经常报以下错误:
"msg": "failed to resolve remote temporary directory from ansible-tmp-1471585155.14-189251857196240: `( umask 77 && mkdir -p \"` echo $HOME/.ansible/tmp/ansible-tmp-1471585155.14-189251857196240 `\" && echo ansible-tmp-1471585155.14-189251857196240=\"` echo $HOME/.ansible/tmp/ansible-tmp-1471585155.14-189251857196240 `\" )` returned empty string"
解决方案有两个
- 提高 SSH 的版本,在测试后期,我换用了 CentOS 7 ,当然也可以不换操作系统,只升级 openssh。
- 禁用该功能特性
]# vim /etc/ansible/ansible.cfg
[ssh_connection]
ssh_args = -o ControlMaster=no -o ControlPersist=no
2、安装 Ansible
在管理主机 test-135-46 上执行
]# yum install ansible
注:
需要安装 EPEL 源
3、验证测试
将主机信息添加到 Inventory 中
]# vim /etc/ansible/hosts
[webs]
192.168.135.44
192.168.135.45
执行如下命令,有以下输出,说明安装配置成功
]# ansible webs -m ping
192.168.135.44 | SUCCESS => {
"changed": false,
"ping": "pong"
}
192.168.135.45 | SUCCESS => {
"changed": false,
"ping": "pong"
}