ansible主机清单文件以及配置详解 inventory(ansible自动化运维系列)

/etc/ansible/hosts是ansible默认主机资产清单文件,用于定义被管理主机的认证信息

例如ssh登录用户名、密码以及key相关信息。

ansible  Inventory文件中填写需要被管理的主机与主机组信息。还可以自定义Inventory主机清单的位置,使用 ansible  -i  inventroy  指定文件位置即可。

cat /etc/ansible/hosts

1.invertory主机清单定义方式

#方法一: 单台主机定义

[root@ansible ~]# cat /etc/ansible/hosts
10.0.0.7 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass='1'

#方式二、IP+端口+用户+密码

[webs]
10.0.0.7 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass='1'
10.0.0.8 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass='1'

2.使用ping模块测试和客户端的连通性

先 编辑一下  ansible.cfg 文件

vim /etc/ansible/ansible.cfg

71 host_key_checking = False # 将71行注释打开 跳过指纹检查

[root@m01 /etc/ansible]#ansible 172.16.1.7 -m ping

[root@ansible ~]# cat /etc/ansible/hosts
[webs]
10.0.0.7 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass='1'
10.0.0.8 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass='1'

[root@ansible ~]# ansible webs -m ping

#方法2 配置别名方

[root@ansible ~]# cat /etc/ansible/hosts
[webs]
web01 ansible_ssh_host=10.0.0.7 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass='1'

web02 ansible_ssh_host=10.0.0.8 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass='1'

#方法3 变量使用

[root@ansible ~]# cat /etc/ansible/hosts
[webs]
web01 ansible_ssh_host=10.0.0.7

web02 ansible_ssh_host=10.0.0.8

[webs:vars]
ansible_ssh_port=22
ansible_ssh_user=root
ansible_ssh_pass='1'
[root@ansible ~]# ansible web01 -m ping

方法4: 使用免密钥方式管理客户端

1.生成秘钥

[root@ansible ~]# ssh-keygen

2.拷贝到被管理端

[root@ansible ~]# ssh-copy-id -i .ssh/id_rsa.pub 10.0.0.7
[root@ansible ~]# ssh-copy-id -i .ssh/id_rsa.pub 10.0.0.8
[root@ansible ~]# ssh-copy-id -i .ssh/id_rsa.pub 10.0.0.31

3.写入主机清单

[root@ansible ~]# cat /etc/ansible/hosts
10.0.0.31

[webs]
web01 ansible_ssh_host=10.0.0.7
web02 ansible_ssh_host=10.0.0.8

定义多个组为一个组: 使用children
[root@ansible ~]# cat /etc/ansible/hosts
[nfs]
10.0.0.31

[webs]
web01 ansible_ssh_host=10.0.0.7
web02 ansible_ssh_host=10.0.0.8

[lnmp:children]
nfs
webs

对主机清单中所有的客户端执行命令: all
[root@ansible ~]# ansible all -m ping

主机清单小结:
单台主机:
10.0.0.7 (底层做免秘钥)
定义组:
[webs]
10.0.0.7
10.0.0.8

别名定义:
web01 ansible_ssh_host 10.0.0.7

多个组定义
[lnmp:children]
nfs
web
db

欢迎来撩 : 汇总all

白眉大叔

关于白眉大叔linux云计算: 白眉大叔

热门文章