我试图理解我在一个不完整的Ansible角色中找到的变量引用。该角色使用
引用值dest: “{{params['box'].t1}}”
在一个单独的yaml文件中我有
box:
t1: "Albany"
t2: "Albuquerque"
没有定义params,所以显然这不会起作用,但我无法弄清楚定义它的正确方法。 有人可以告诉我必须为这个变量引用定义哪些(或如何)params才能在Ansible中工作?
相关问题。在dest: “{{params['box'].t1}}”
中使用方括号是否表示它是字典?如果是,我还可以将其写为dest: “{{params['box']['t1']}”
或dest: “{{params.box.t1}”
吗?
答案 0 :(得分:2)
params['box'].t1
指的是Albany
:
params:
box:
t1: "Albany"
t2: "Albuquerque"
与params.box.t1
和params['box']['t1']
相同。
括号是指一个键名,因此它们暗示它是一本字典。
当您想通过变量引用键时,通常使用方括号表示法:
vars:
wanted_key: box
params:
box:
t1: Albany
other:
t1: Albuquerque
然后params[wanted_key].t1
引用Albany
。
在您的示例中,方括号内的值是一个字符串(带引号),因此以上所有示例都是等效的。