【发布时间】:2017-07-26 09:15:11
【问题描述】:
我有一个类似的 hosts 文件:
[myhosts]
192.168.0.1
192.168.0.2
[group1:children]
myhosts
[group2:children]
myhosts
与 group1 和 group2(顺便说一下 myhosts)的 group vars 文件一起声明一些常见的变量,但具有不同的值。
这是我的目录布局(遵循best pratices):
hosts
main.yml
group_vars/
group1.yml
group2.yml
myhosts.yml
因此,当主机同时属于两个组时,ansible 会自动包含 group1 和 group2 的两个 group vars 文件。
为了记录,我在我的 playblook 上调用 ansible 并使用以下 pattern 作为目标(在命令行中指定):
192.168.0.1:&group1
考虑到这一点,我怎样才能使 ansible 仅包含与 group1 关联的 group vars 文件(以及子组 myhosts)?这可能吗?
另一种解决方案是将 group1 和 group2 的 group vars 文件重命名为不同的名称(以防止自动包含)并包含那些在单独的“代理”剧本中,特定于每个子组,但这对我来说似乎不太干净。
注意:目前情况并非如此,但在未来,group1 和 group2 很可能很少有不共同的主机。
【问题讨论】:
标签: ansible ansible-2.x ansible-inventory