【发布时间】:2019-08-01 07:43:36
【问题描述】:
第一次创建 Ansible 清单时,我创建了大致按角色分隔的单独文件,但在一个目录中。所以我的目录结构看起来像这样(由角色组成):
ansible\
inventory\
dbservers
logservers
webservers
host_vars\
roles\
例如,这使得在所有数据库服务器或所有 Web 服务器上运行剧本变得容易,但我现在意识到我也可以通过使用主机组(无论如何我已经拥有)来做到这一点。
我现在遇到的一个问题是,我想在一个清单中列出主机,同时在另一个清单上运行剧本。例如,dbservers 可能有一个防火墙规则来允许来自 webservers 的访问,我想做lookup('inventory_hostnames', 'webservers') - 但是当“webservers”组在“webservers”清单中定义并且我正在运行时,这不起作用@ 987654323@。另一个问题是除了角色之外的主机组,例如服务器的物理位置,在文件之间是重复的。
为了解决这个问题,我很想将所有东西都移到一个库存中。这样做有什么缺点吗?
(我知道我可以使用-i inventory_dir 运行,因此我仍然可以拥有多个库存文件,但可以将它们用作一个逻辑库存。)
【问题讨论】: