Ansible从一个组中获取主机名作为变量到另一个组中播放。

问题描述 投票:1回答:1

这是库存文件。

[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。如果我不清楚,请告诉我。

先谢谢你..,

ansible ansible-2.x ansible-inventory ansible-facts ansible-template
1个回答
2
投票

你可以使用 "groups "这个神奇的变量,就像我们在 "Groups "中讨论的那样。文件.

groups 是清单中所有组(和主机)的列表。这可以用来列举一个组内的所有主机。

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

© www.soinside.com 2019 - 2024. All rights reserved.