该Ansible变量应如何定义?

问题描述 投票:0回答:1

我试图理解我在一个不完整的Ansible角色中找到的变量引用。该角色使用引用值

dest: “{{params['box'].t1}}”

在一个单独的yaml文件中我有

box:
    t1: "Albany"
    t2: "Albuquerque"

params没有定义,所以显然这不会起作用,但我无法弄清楚定义它的正确方法。有人能告诉我必须在哪里(或如何)定义这个变量引用才能在Ansible中工作?


相关问题。在dest: “{{params['box'].t1}}”中使用方括号是否表示它是字典?如果是的话,我还能把它写成dest: “{{params['box']['t1']}”dest: “{{params.box.t1}”吗?

ansible
1个回答
2
投票

params['box'].t1指的是Albany

params:
  box:
    t1: "Albany"
    t2: "Albuquerque"

它与params.box.t1params['box']['t1']相同。

括号是指一个关键名称,因此它们暗示它是一本字典。


当您想通过变量引用键时,通常使用方括号 - 表示法:

vars:
  wanted_key: box
  params:
    box:
      t1: Albany
    other:
      t1: Albuquerque

然后params[wanted_key].t1指的是Albany

在您的示例中,方括号内的值是一个字符串(引用),因此以上所有示例都是等效的。

© www.soinside.com 2019 - 2024. All rights reserved.