我想使用ansible部署登台和生产环境。除少数配置外,所有组件对于分段和生产都是相同的。所以我创建了以下文件
group_vars
- all.yml
- production.yml
- staging.yml
每当我运行ansible-playbook
时,它都会从all.yml加载配置。但我也想加载production.yml
或staging.yml
。
运行ansible playbook命令时如何包含此配置?
答案 0 :(得分:2)
这应该是开箱即用的,因为您的主机已在您的广告资源中分组。
因此,让我们说您的广告资源如下:
[production]
host.a
host.b
[staging]
host.c
host.d
然后,相对于您的剧本,您将拥有以下yaml文件:
将加载来自所有匹配组的变量。当然还有all
文件。
组名不是文件,也可以是目录,然后加载所有包含的yaml文件。
在评论中讨论后更新:
因此,如果您的生产库存如下所示:
[redisServers]
host.a
host.b
[apiServers]
host.c
host.d
[SQLServers]
host.e
host.f
然后您添加另一个组production
。要不重复所有主机名,您可以创建group of groups,如下所示:
[production:children]
redisServers
apiServers
SQLServers