环境:一台管理机,二台被管理主机
操作系统:Centos7.4
管理机IP:192.168.0.201
二台被管理主机IP:192.168.0.206 192.168.0.207
目的:在管理机上安装ansible,通过ansible来管理另外两台主机
1、在管理机上配置好epel源,通过epel源安装ansible
1 |
yum install ansible -y |
2、定义主机清单
1 |
vi /etc/ansible/hosts |
添加
1 2 3 |
[webserver] 192.168.0.206 192.168.0.207 |
3、创建密钥并将管理机的公钥拷贝到远程主机
1 2 3 |
ssh-keygen ssh-copy-id -i .ssh/id_rsa.pub root@192.168.0.206 ssh-copy-id -i .ssh/id_rsa.pub root@192.168.0.207 |
将管理机的公钥拷贝到远程主机的.ssh/authorized_keys,在被管理主机上使用命令ll -d .ssh/authorized_keys可以看到默认的权限是600,ll -d .ssh是700
4、接下来就可以使用ansible命令了,比如向所有主机ping操作
1 |
ansible all -m ping |
显示以下内容表示配置成功
1 2 3 4 5 6 7 8 |
192.168.0.206 | SUCCESS => { "changed": false, "ping": "pong" } 192.168.0.207 | SUCCESS => { "changed": false, "ping": "pong" } |
这样一个简单的ansible就配置好了
附录:
1、如果被管理主机不是默认22端口(比如222端口),则使用以下命令
1 |
ssh-copy-id -i .ssh/id_rsa.pub -p 222 root@192.168.0.207 |
2、如果使用了非默认22端口(比如222端口),定义主机清单时需要指定端口
1 2 3 4 5 |
[webserver] 192.168.0.207:222 或 [webserver] 192.168.0.207 ansible_ssh_port=222 |
3、如果被管理主机禁用了密码,可以手动将管理机的公钥(.ssh/id_rsa.pub)内容,复制到被管理机的(.ssh/authorized_keys)中
4、如果想在管理机上以被管理主机的普通用户来执行,可以将管理机的公钥内容复制到被管理机普通用户的家目录(.ssh/authorized_keys)中,并在管理机的主机清单中指定用户
1 2 |
[webserver] 192.168.0.207 ansible_ssh_port=222 ansible_ssh_user=whsir |
原文链接:一个简单的ansible配置,转载请注明来源!