軟件安裝
再此我們採用的是yum安裝方法,命令如下
#yum install -y ansible
軟件完整完畢之後,默認一般會在/etc/ansible目錄下生成有如下文件
[root@bogon ~]# ls /etc/ansible/
ansible.cfg hosts roles
其中ansible.cfg爲ansible主配置文件,hosts一般爲默認的管理客戶機文件
ansible主配置文件去掉註釋內容如下
[root@bogon ~]# grep -Ev "#|^$" /etc/ansible/ansible.cfg
[defaults]
roles_path = /etc/ansible/roles:/usr/share/ansible/roles
[inventory]
[privilege_escalation]
[paramiko_connection]
[ssh_connection]
[persistent_connection]
[accelerate]
[selinux]
[colors]
[diff]
[root@bogon ~]#
修改管理主機配置文件/etc/ansible/hosts文件
在文件末尾直接添加如下內容:
#vi /etc/ansible/hosts
[web]
192.168.1.200
[windows]
192.168.1.105
進行ansible軟件批量管理
ansible測試主機是否在線
[root@bogon ~]# ansible web -m ping
192.168.1.200 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).\r\n",
"unreachable": true
}
[root@bogon ~]#
解決步驟:
步驟一:管理節點生成ssh-key
#ssh-keygen
成功在~/.ssh/路徑系生成ssh密鑰文件:id_rsa及id_rsa.pub
步驟二:添加目標節點的SSH認證信息
#ssh-copy-id root@目標節點IP
這裏root是在目標節點上登錄的用戶。@符號後面連接目標節點IP即可,之後會提示輸入目標節點root用戶密碼,輸入即可
處理好之後即可再次使用ansible的ping模塊測試客戶機是否在線
查看客戶機的IP信息
[root@bogon ~]# ansible web -m command -a "ifconfig"
192.168.1.200 | SUCCESS | rc=0 >>
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.200 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::9a02:ba9b:6c82:a2d8 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:ed:73:45 txqueuelen 1000 (Ethernet)
RX packets 32500 bytes 11689302 (11.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 11438 bytes 1462522 (1.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 84 bytes 6392 (6.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 84 bytes 6392 (6.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
實現客戶機軟件安裝
ansible web -m command -a "yum install -y httpd"