在ansible中包含阶段环境

时间:2016-01-22 09:15:07

标签: ansible ansible-playbook

我想使用ansible部署登台和生产环境。除少数配置外,所有组件对于分段和生产都是相同的。所以我创建了以下文件

 group_vars
  - all.yml
  - production.yml
  - staging.yml

每当我运行ansible-playbook时,它都会从all.yml加载配置。但我也想加载production.ymlstaging.yml

运行ansible playbook命令时如何包含此配置?

1 个答案:

答案 0 :(得分:2)

这应该是开箱即用的,因为您的主机已在您的广告资源中分组。

因此,让我们说您的广告资源如下:

[production]
host.a
host.b

[staging]
host.c
host.d

然后,相对于您的剧本,您将拥有以下yaml文件:

  • group_vars /所有
  • group_vars /生产
  • group_vars /分期

将加载来自所有匹配组的变量。当然还有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