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]