ansible的主机清单(inventory)
ansible的inventory文件为主机清单,记录了所有被管理节点的清单,并且使用组和子组的方式进行管理,默认配置文件为/etc/ansible/hosts文件
主机清单编写规则支持连续符号[a:z],[0:9],同时支持组和嵌套定义,同时也内置了一些变量
ansible_ssh_use 定义ssh主机认证用
ansible_ssh_pas 定义ssh主机认证密码
编写示例
连续ip主机配置:定义主机192.168.31.100到192.168.31.106
192.168.31.[100:106]
连续主机名配置:testa,testb,testc
test[a:c]
主机配置:配置主机,多个主机换行写入
[root@ansible ansible]# cat hosts
192.168.31.106
[root@ansible ansible]# ansible 192.168.31.106 -m ping
192.168.31.106 | SUCCESS => {
"changed": false,
"ping": "pong"
}
主机组配置:slave为主机组在slave下面的所有主机均可通过slave操作,多个主机换行写入
[root@ansible ansible]# cat hosts
[slave]
192.168.31.106
[root@ansible ansible]# ansible slave -m ping
192.168.31.106 | SUCCESS => {
"changed": false,
"ping": "pong"
}
主机组嵌套:定义了test组,slave为test的子组,test管理所有的组,关键字children
[root@ansible ansible]# cat hosts
[test:children]
slave
[slave]
192.168.31.106
[root@ansible ansible]# ansible test -m ping
192.168.31.106 | SUCCESS => {
"changed": false,
"ping": "pong"
}
使用变量,可以为单个主机/主机组/嵌套主机组进行定义使用,关键字vars,下面的变量定义,对所有的组和组下面的主机都是有效的,如果只是对slave组定义变量,可以使用[slave:vars] 这样就支队slave组下的主机生效
[root@ansible ansible]# cat hosts
[test:vars]
ansible_ssh_user=root
ansible_ssh_pass='redhat'
[test:children]
slave
[slave]
192.168.31.106