我有一个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很可能没有共同的主机。
答案 0 :(得分:2)
播放的$('#cart').html('');
$('#cart').html(response);
值是一种设置播放目标主机的方法,但它不是这些主机上的视图。
如果主机属于多个组,则始终从所有组的hosts
加载变量,而不仅仅是播放中指定的变量。