1
如果没有明确表达,请随时提出建议或直接编辑我的问题。如何在Ansible中使用嵌套变量(字典键)?
我在Ansible宣布一些像这样的嵌套变量:
# vars/main.yml
parent_key:
child_key1: "child_value1"
child_key2: "Resolving: {{ child_key1 }}"
但Ansible说:child_key1 not defined
或类似的东西。
然而,这也不起作用:
# vars/main.yml
parent_key:
child_key1: "child_value1"
child_key2: "Resolving: {{ parent_key.child_key1 }}"
Ansible说像Could not template ...
。
Ansible 1.9.4和Ansible 2.0.0.2的结果几乎相同。
如何在child_key2
中使用child_key1
的值,当它们都嵌套在parent_key
下时?
注意,如果没有嵌套键相同的概念正常工作:
# vars/main.yml (without nesting at all)
child_key1: "child_value1"
child_key2: "Resolving: {{ child_key1 }}"
这很棒,适合我。我可以同情删除该功能的原因,所以这是一个很大的妥协。 – Neil
你能解释一下在这种情况下'&'和'*'运算符是什么? – Neil
这是一个锚点和对YAML一部分的锚点的引用。你可以玩它[这里](http://yaml-online-parser.appspot.com/?yaml=key1%3A+%26key1+%22child_value1%22%0A%0Aparent_key%3A%0A++child_key1%3A+* key1%0A ++ child_key2%3A +%22Resolving%3A +%7B%7B + key1 +%7D%7D%22&type = json),在右边你会看到Ansible解析YAML后得到的评估对象。 – udondan