【问题标题】:Ansible vars not substituting variables inside dictionaryAnsible vars 不替换字典中的变量
【发布时间】:2020-02-29 21:50:08
【问题描述】:

我有以下变量和字典:

My_VAR1: "Hello"
My_VAR2: "My_DIC1"
My_DIC1: 
   key1: "{{ My_VAR1 }} World"
My_VAR3: "{{ vars[My_VAR2]['key1'] }}"

但它似乎 vars 不能替代变量,我得到以下输出:

TASK [output : {{ My_VAR1 }} World] ***

有没有办法强制 vars 替换变量并获得以下输出:

TASK [output : Hello World] ***

【问题讨论】:

    标签: dictionary ansible yaml jinja2


    【解决方案1】:

    问:“有没有办法强制vars替换变量,得到如下输出”

    TASK [output : Hello World]
    

    A:下面的剧本

      vars:
        My_VAR1: Hello
        My_VAR2: "{{ My_VAR1 }} World"
        My_VAR3: "{{ My_VAR2 }}"
      tasks:
        - debug:
            var: My_VAR3
    

    给予

    "My_VAR3": "Hello World"
    

    问:“My_VAR2 是一本字典……”

    A:使用 lookup 和 vars 插件。下面的播放给出了相同的结果。

      vars:
        My_VAR1: Hello
        My_DIC1:
          key1: "{{ My_VAR1 }} World"
        My_VAR2: "My_DIC1"
        My_VAR3: "{{ lookup('vars', My_VAR2).key1 }}"
      tasks:
        - debug:
            var: My_VAR3
    

    【讨论】:

    • 感谢您的回答,但我的 My_VAR2 最初是一本字典,它无法正常工作,我更新了我的问题。
    • 谢谢你的回答,它现在工作正常非常感谢你,但它很奇怪,你有阅读文档来掌握这个吗?
    • 当然。这是plugins 的列表。不客气。
    猜你喜欢
    • 2021-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-15
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 2016-08-05
    相关资源
    最近更新 更多