首页 文章

在ansible中包含阶段环境

提问于
浏览
1

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

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

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

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

1 回答

  • 2

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

    所以我们说你的库存看起来像这样:

    [production]
    host.a
    host.b
    
    [staging]
    host.c
    host.d
    

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

    • group_vars / all

    • group_vars / production

    • group_vars / staging

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

相关问题