如果库存仅为localhost,则与多个组共享ansible变量

时间:2017-04-19 19:35:00

标签: ansible kubernetes ansible-inventory

我使用ansible通过本地计算机上的kubectl命令将作业/配置发送到我的k8s群集。我有我的库存文件设置,以便每个群集都是它自己的组,每个群集基本上都是与localhost的连接。

# Inventory File
#
[east.k.example.com]
localhost              ansible_connection=local

[east2.k.example.com]
localhost              ansible_connection=local

然后在我的group_vars目录中,我的库存文件中有一个不同的文件,其中包含我的组名,该文件包含每个群集的所有不同变量。

我将运行限制为仅使用limit选项定位一个群集: ansible-playbook -vv create.yaml -l east2.k.example.com --tags ingress-generate-only

问题在于,当我尝试在模板中使用变量时,我会从其他组中获取变量。我在想,因为每个组都包含localhost。

有没有更好的方法来解决这个问题?我可以设置一个标志,以便组只包含group_var文件中的变量吗?

感谢,

1 个答案:

答案 0 :(得分:4)

重构您的广告资源以使用不同的名称:

 bank.Accounts.Add(new Account(Guid.NewGuid(), 343, "Checkings"));

这样Ansible会将它们视为不同的主机,因此不会合并来自不同组的变量。