Ansible:使用组组限制组变量

时间:2017-07-26 09:15:11

标签: ansible ansible-2.x ansible-inventory

我有一个ansible hosts 文件,看起来像这样:

[myhosts]
192.168.0.1
192.168.0.2

[group1:children]
myhosts

[group2:children]
myhosts

group1 group2 group vars 文件(以及 myhosts 的顺便提交)一起声明一些常见变量,但值不同。

这是我的目录布局(在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 (和子组 myhosts )相关联的 group vars 文件?这可能吗?

另一种解决方案是将 group1 group2 group vars 文件重命名为不同的(以防止自动包含)并包括那些在单独的"代理"每个小组特有的剧本,但这对我来说似乎不那么干净。

注意:目前情况并非如此,但在未来的情况下,group1和group2很可能没有共同的主机。

1 个答案:

答案 0 :(得分:2)

播放的$('#cart').html(''); $('#cart').html(response); 值是一种设置播放目标主机的方法,它不是这些主机上的视图
如果主机属于多个组,则始终从所有组的hosts加载变量,而不仅仅是播放中指定的变量。