Ansible如何决定应用哪个group_vars文件?

时间:2016-10-28 19:13:33

标签: ansible ansible-playbook

我正在尝试调试ansible在运行时填充某些模板的方式。

我在group_vars中有两个文件:

foo/etl.yml
prod/etl.yml

prod/etl.yml广告资源执行游戏手册时,foo/etl.yml中的值应覆盖prod中的值。我的命令行看起来类似于:

ansible-playbook foo.yml -i prod --tag foo-config

这会生成一个输出文件,其中只包含来自foo / etl.yml的值,而不包含prod / etl.yml中的值。我确信我缺少一些基本的东西而且我正在努力学习 - 所以我的问题是,有没有办法追踪填充到模板中的值的来源?

更新:根据要求,prod广告资源文件的简化版本:

[region1-gateways]
gw1.region1.foo.com
gw2.region1.foo.com

[region1-masters]
admin1.region1.foo.com
admin2.region1.foo.com

[region1-nodes]
node1.region1.foo.com
node2.region1.foo.com
node3.region1.foo.com

[gateways:children]
region1-gateways

[masters:children]
region1-masters

[nodes:children]
region1-nodes

[prod:children]
gateways
masters
nodes

1 个答案:

答案 0 :(得分:0)

您可以将[1] ** browser-sync config ** [1] { injectChanges: false, [1] files: [1] [ './src/**/*.{html,htm,css,js}', [1] './dist/**/*.{html,htm,css,js}' ], [1] watchOptions: { ignored: 'node_modules' }, [1] server: { baseDir: './src', middleware: [ [Function], [Function] ] }, [1] port: 8000 } [1] [BS] Access URLs: [1] ------------------------------------- [1] Local: http://localhost:8000 [1] External: http://192.168.1.87:8000 [1] ------------------------------------- [1] UI: http://localhost:3001 [1] UI External: http://192.168.1.87:3001 [1] ------------------------------------- [1] [BS] Serving files from: ./src [1] [BS] Watching files... [1] 16.10.29 19:34:49 304 GET /index.html 文件放在etl.yml目录下的group_vars/目录下。

  • prod

根据您添加prod/group_vars/etl.yml的方式,这应覆盖foo/etc.yml内容的设置。