首页 > 解决方案 > Ansible 从一个组中获取主机名作为另一个播放的变量

问题描述

这是库存文件。

[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 获取到 play2debug: msg="{{inventory_hostname}}"中,我知道 inventory_hostname 正在获取 host3。有没有其他方法我只能得到host1和host2。如果我不清楚,请告诉我。

提前致谢。,

标签: ansibleansible-2.xansible-inventoryansible-factsansible-template

解决方案


您可以使用文档中讨论的“组”魔术变量。

groups 是清单中所有组(和主机)的列表。这可用于枚举组内的所有主机。

所以你可以参考,例如,groups['abc']groups['abc'][0]


推荐阅读