如果库存仅为本地主机,则可与多个组共享ansible变量

如果库存仅为本地主机,则可与多个组共享ansible变量,ansible,kubernetes,ansible-inventory,Ansible,Kubernetes,Ansible Inventory,我使用ansible通过本地机器上的kubectl命令将作业/配置发送到我的k8s集群。我有我的清单文件设置,这样每个集群都是它自己的组,每个集群基本上都是到本地主机的连接 # Inventory File # [east.k.example.com] localhost ansible_connection=local [east2.k.example.com] localhost ansible_connection=local 然后,

我使用ansible通过本地机器上的kubectl命令将作业/配置发送到我的k8s集群。我有我的清单文件设置,这样每个集群都是它自己的组,每个集群基本上都是到本地主机的连接

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

[east2.k.example.com]
localhost              ansible_connection=local
然后,在我的group_vars目录中,我有一个不同的文件,其中包含我的组名,该文件与清单文件不同,清单文件包含每个集群的所有不同变量

我使用“限制”选项将跑步限制为仅针对一个群集:
ansible playbook-vv create.yaml-l east2.k.example.com——标签入口仅生成

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

有没有更好的办法来解决这个问题?我是否可以设置一个标志,使组仅包含组\u var文件中的变量


谢谢,

重构您的库存以使用不同的名称:

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

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

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

OMG非常感谢!!!你不知道我一直在努力解决这个问题。