我有一个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 包含在 inventoryories / group_vars / all ...换句话说,来自 inventoryories / group_vars / sandbox1 的foo值不会覆盖" global /所有"版本
这是实施库存特定变量的正确方法吗?我想避免为变量这样简单的事情创建多个剧本......也就是说,我不想在"所有"内部做这样的事情。文件
default_foo: bar
sandbox1_foo: baz
以及多个剧本,除了他们引用的变量外,它们都是相同的。
有没有办法做我要问的事?
答案 0 :(得分:1)
group_vars文件夹应包含组的名称,而不是用于添加变量的清单。在sandbox1清单文件中添加一个名为“sandbox1”的组,然后它将使用这些变量。