Ansible 从一个组中获取主机名作为另一个变量的变量
Ansible get hostnames from one group as a variable to another play
这是库存文件。
[abc]
host1
host2
[123]
host3
和main.yml
#play1
- hosts: abc
roles:
- { role: abc }
tasks:
...
#play2
- hosts: 123
roles:
- { role: 123 }
tasks:
debug: msg="{{inventory_hostname}}"
基本上我需要 运行 host3 中的一些命令,这些命令需要 host1 和 host2。那么我怎样才能让 abc 组中的 host1 和 host2 进入 play2 debug: msg="{{inventory_hostname}}"
,我知道 inventory_hostname 正在获取 host3。有没有其他方法我只能得到 host1 和 host2。如果我不清楚,请告诉我。
提前致谢,
您可以使用 documentation 中讨论的“groups”魔术变量。
groups is a list of all the groups (and hosts) in the inventory. This can be used to enumerate all hosts within a group.
因此您可以参考,例如 groups['abc']
或 groups['abc'][0]
。
这是库存文件。
[abc]
host1
host2
[123]
host3
和main.yml
#play1
- hosts: abc
roles:
- { role: abc }
tasks:
...
#play2
- hosts: 123
roles:
- { role: 123 }
tasks:
debug: msg="{{inventory_hostname}}"
基本上我需要 运行 host3 中的一些命令,这些命令需要 host1 和 host2。那么我怎样才能让 abc 组中的 host1 和 host2 进入 play2 debug: msg="{{inventory_hostname}}"
,我知道 inventory_hostname 正在获取 host3。有没有其他方法我只能得到 host1 和 host2。如果我不清楚,请告诉我。
提前致谢,
您可以使用 documentation 中讨论的“groups”魔术变量。
groups is a list of all the groups (and hosts) in the inventory. This can be used to enumerate all hosts within a group.
因此您可以参考,例如 groups['abc']
或 groups['abc'][0]
。