从Ansible Playbook访问元组子级中的主机
我正在尝试整理我的inventory.yaml文件,按组排列主机,然后在Ansible playbook中调用它们 inventory.yaml文件如下所示:从Ansible Playbook访问元组子级中的主机,ansible,ansible-2.x,ansible-inventory,Ansible,Ansible 2.x,Ansible Inventory,我正在尝试整理我的inventory.yaml文件,按组排列主机,然后在Ansible playbook中调用它们 inventory.yaml文件如下所示: --- all: hosts: children: MY_Lab: Ubuntu_18: hosts: BWT_BKP_A: ansible_host: "10.2.8.19" BW
---
all:
hosts:
children:
MY_Lab:
Ubuntu_18:
hosts:
BWT_BKP_A:
ansible_host: "10.2.8.19"
BWT_BKP_B:
ansible_host: "10.2.8.22"
BWT_BKP_C:
ansible_host: "10.2.9.12"
vars:
ansible_connection: ssh
ansible_user: administrator
ansible_ssh_pass: P@ssword
ansible_sudo_pass: P@ssword
在我的Ansible playbook中,我想访问Ubuntu_18部分的主机,但我不能:
name: Test connectivity
hosts: BWT_BKP_A
vars:
ansible_python_interpreter: /usr/bin/python3
tasks:
- name: Ping test
ping:
我得到以下错误:
ansible-playbook ping-test.yaml -i inventory.yaml
[WARNING]: Could not match supplied host pattern, ignoring: BWT_BKP_A
PLAY [Test connectivity] *****************************************************************************************************
skipping: no hosts matched
如果我尝试整个团队,比如:
hosts: Ubuntu_18
我也犯了同样的错误
不知道我错过了什么。我使用的是ansible 2.9.12您的库存文件中有一个错误。
子项
键应该是主机的对等项,而不是子项,每次尝试创建“子组”时,都需要另一个子项:
键
将其用作我的测试清单:
---
all:
children:
MY_Lab:
children:
Ubuntu_18:
hosts:
BWT_BKP_A:
ansible_host: "127.0.0.1"
BWT_BKP_B:
ansible_host: "127.0.0.1"
BWT_BKP_C:
ansible_host: "127.0.0.1"
我可以跑:
$ ansible -i hosts.yml -m ping MY_Lab
BWT_BKP_B | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
BWT_BKP_A | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
BWT_BKP_C | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
或:
等等。谢谢拉尔克斯。这解决了问题!
$ ansible -i hosts.yml -m ping BWT_BKP_A
BWT_BKP_A | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}