【问题标题】:How should this Ansible variable be defined?这个 Ansible 变量应该如何定义?
【发布时间】:2017-12-22 03:53:18
【问题描述】:

我试图理解我在不完整的 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】:

    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

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

    【讨论】:

    • using params: 实际上是我尝试的第一件事,但是因为我错误地间隔了 yaml 文件,所以它没有用。谢谢你的精彩解释,让我免于犯下愚蠢的错误!!!
    猜你喜欢
    • 2017-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-13
    相关资源
    最近更新 更多