【发布时间】:2016-06-15 16:40:21
【问题描述】:
我有一个看起来像这样的ansible 设置
inventories/
sandbox1
group_vars/
all
sandbox1
pb/
pb1/
run_pb1.yml
我也有角色和其他东西,但我认为这足以抓住我需要做的事情的要点。
我有一个变量 foo 我在里面定义
inventories/group_vars/all
与
inventories/group_vars/sandbox1
现在我的问题是每当我打电话时
ansible-playbook -i inventories/sandbox1 pb/pb1/run_pb1.yml
playbook 以 foo 的值运行 包含在 inventories/group_vars/all... 换句话说,来自 inventories/group_vars/sandbox1 的 foo 的值不会覆盖“global/all”版本.
这是实现库存特定变量的正确方法吗?我想避免为像变量更改这样简单的事情创建多个剧本......即,我不想在“所有”文件中做这样的事情
default_foo: bar
sandbox1_foo: baz
还有多个剧本,除了它们引用的变量之外,它们都是相同的。
有没有办法按照我的要求去做?
【问题讨论】:
-
group_vars 文件夹应该包含组的名称,而不是用于添加变量的清单。您能否分享一份您的 sandbox1 库存样本以进一步说明?
-
您的评论提供了解决方案,我的清单文件中没有包含一个名为 sandbox1 的组。谢谢!
-
为了后代,我添加了我的评论作为答案。 :-)
标签: variables scope ansible ansible-playbook inventory