首页 > 解决方案 > Ansible AWX / Tower 可以使用来自外部源 / Git 存储库的 group_vars 和 host_vars 吗?

问题描述

标准 CLI Ansible在与主机文件相同的位置查找group_varsand目录。host_vars参见示例如何更改 group_vars 和 host_vars 的路径?.

Ansible AWX / Tower 可以选择使用“外部来源”进行库存。当我添加我的 Git 存储库的 URL 时,我可以选择主机文件或根目录。

我尝试了在根目录中使用主机文件的配置以及在子目录中使用主机文件的配置。据我所知,使用这两个选项,目录group_vars和被忽略。host_vars

文档在这个问题上有点含糊。

鼓励将可变数据与 Tower 中的对象一起保存(请参阅清单编辑器),而不是使用 group_vars/ 和 host_vars/。如果您使用动态清单源,只要未设置覆盖变量选项,Tower 就可以将此类变量与数据库同步。 26. 最佳实践——Ansible Tower 用户指南 v3.7.0

Tower / AWX 可以同步这些变量吗?group_vars和/或中的变量host_vars?或者这种同步能力是否仅限于主机文件?

如果可能的话,这应该如何工作?

似乎 Ansible AWX / Tower 是一条单行道。如果您想使用 AWX,您必须将group_varshost_vars目录迁移到 AWX / Tower,然后就没有办法回来了吗?

Ansible 项目可以与标准 CLI Ansible 或 AWX / Tower 一起使用——不能同时使用!?

标签: ansibleansible-toweransible-awx

解决方案


如果您在GitHub存储库中使用静态inventory文件(在根文件夹或子文件夹中),则可以在此文件中放置 var。以我的经验,这是我必须采取的方式才能让TOWER “看到”这些变量(正如您所指出的那样,似乎没有读取单独的“变量”文件夹)。

我像往常一样设置了一个TOWER PROJECT,同步。然后,我INVENTORYTOWER中设置了一个,并在SOURCE下定义了基于 GitHub存储库的inventory文件,并同步了SOURCE

这将导致host_vars&group_vars被同步,并绑定到在TOWER上创建的主机和组(来自您定义的INVENTORY.)

例如:

[ans-poc-tower]
towernode.fqdn https_port=443

[ans-poc-tower:vars]
role=TOWER
loc=RemoteDC

参考: 添加变量到库存


推荐阅读