转载请注明出处:http://blog.csdn.net/l1028386804/article/details/79049837
一、服务器规划
二、环境安装
1、安装EPEL
由于目前RHEL官网的yum源还没有得到Ansible的安装包支持,因此先安装EPEL作为部署Ansible的默认yum源。
rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel-release-6-8.noarch.rpm
2、安装Ansible
在主服务器(主控端),执行如下命令
# yum install ansible -y
3、Ansible配置及测试
1)修改主机与组配置
修改主机与组配置,文件位置/etc/ansible/hosts,格式为ini,添加两台主机IP,同时定义两个IP到webservers组,更新的内容如下:
## green.example.com
## blue.example.com
192.168.209.162
192.168.209.163
[webservers]
## alpha.example.org
## beta.example.org
192.168.209.162
192.168.209.163
通过ping命令测试主机的连通性,分别对单主机以及组进行ping操作,如下:
[root@liuyazhuang161 ~]# ansible 192.168.209.162 -m ping -k
SSH password:
192.168.209.162 | SUCCESS => {
"changed": false,
"ping": "pong"
}
[root@liuyazhuang161 ~]# ansible 192.168.209.162 -m ping
192.168.209.162 | SUCCESS => {
"changed": false,
"ping": "pong"
}
[root@liuyazhuang161 ~]# ansible 192.168.209.163 -m ping
192.168.209.163 | SUCCESS => {
"changed": false,
"ping": "pong"
}
[root@liuyazhuang161 ~]# ansible webservers -m ping
192.168.209.162 | SUCCESS => {
"changed": false,
"ping": "pong"
}
192.168.209.163 | SUCCESS => {
"changed": false,
"ping": "pong"
}
注意:
(1)ansible 192.168.209.163 -m ping 命令,如果配置SSH免登录,则直接可以ping通,ansible 192.168.209.162 -m ping -k命令,需要输入192.168.209.162的密码,即使配置了SSH免登录,还是要输入密码的。
(2)以上命令都是用root身份执行的,如果使用普通用户进行连接的话,则连接后需要使用sudo命令实现root权限,格式为:
ansible 192.168.209.162 -m ping -u ansible -sudo
2)配置Linux主机SSH免密码登录
(1))在主控端生SSH成公钥与私钥
在192.168.209.161主控端主机执行ssh-keygen -t rsa,一路回车,将在/root/.ssh下生成一对密钥,其中id_rsa为私钥,id_rsa.pub为公钥(需要下发到被控主机用户.ssh目录,同时要求重命名为authorized_keys文件)。
(2)同步id_rsa.pub文件
同步公钥文件id_rsa.pub到目标主机,推荐使用ssh-copy-id公钥拷贝工具,命令为:
/usr/bin/ssh-copy-id [-i [identity_file]] [user@]machine
比如:我们要将192.168.209.161的公钥同步到192.168.209.162和192.168.209.163主机。
# ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.209.162
# ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.209.163
3)校验SSH是否配置成功
校验SSH是否配置成功,运行ssh root@192.168.209.162,
如果可以直接登录目标root账号,则说明配置成功。