【发布时间】:2021-07-28 05:04:36
【问题描述】:
每当我尝试让 Ansible 解释一个嵌套变量——也就是说,另一个变量中的一个变量——我都无法得到我期望的结果。
给定变量:
key: bar
foo:
bar: baz
foo_bar: baz
当从key 的值构造时,我尝试了这三种方法来动态访问字典foo 的键bar 或键foo_bar,但运气不佳:
-
- ansible.builtin.debug: msg: "{{ foo[{{ key }}] }}"但是,我得到了错误:
'模板化字符串时出现模板错误:预期标记'':'',得到''}''。字符串:{{ foo[{{ key }}] }}'
-
- ansible.builtin.debug: msg: "{{ foo_{{ key }} }}"但是,我遇到了类似的错误
'模板字符串时模板错误:预期标记''打印语句结束'',得到''{''。字符串:{{ foo_{{ key }} }}'
-
- ansible.builtin.debug: msg: "{{ foo['{{ key }}'] }}"在这里,我得到了错误
任务包含一个带有未定义变量的选项。错误是:'dict object' 没有属性'{{ key }}'
我希望得到foo.bar 或foo_bar 的值,所以baz。
实现这一目标的正确方法是什么?
【问题讨论】: