2、hosts文件的INI和YAML模式
可以用all关键字 一次性操作清单中的所有主机
[root@self1-centos7-2 ~]# ansible all -m ping
self2-1 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
self1-1 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
10.2.0.7 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
主机分组
INI配置风格
vim /etc/ansible/hosts
[web]
10.2.0.7 ansible_port=22
self2-1 ansible_host=10.2.0.5 ansible_port=22
[database]
self1-1 ansible_host=10.1.0.10 ansible_port=22
[webservice:children] 前两个组属于webservice的子组
web
database
YAML配置语法,只能用空格缩进
all:
hosts:
10.1.0.10
10.2.0.7
10.2.0.5
#上例相当于如下INI配置
10.1.1.60
10.1.1.61
对应上面ini模式的YAML
all:
hosts
xxxxx(不属于任何组的host)
children:
对应如下
方法一,使用ip
all:
children:
webservice:
children:
web:
hosts:
10.2.0.7
10.2.0.5
database:
hosts:
10.1.0.10
方法二,使用名字
all:
children:
webservice:
children:
web:
hosts:
10.2.0.7: //注意这里的:后面没内容也得加
self2-1:
ansible_host: 10.2.0.5
ansible_port: 22
database:
hosts:
self1-1:
ansible_host: 10.1.0.10
ansible_port: 22
注:ip和port之前必须有空格,YAML语法。比较麻烦,但是编写剧本时需要用YAML。