Ansible vars, не подставляя переменные внутри словаря - PullRequest
1 голос
/ 04 ноября 2019

У меня есть следующая переменная и словарь:

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

Но, кажется, переменные не заменяют переменную, я получаю следующий вывод:

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

Есть ли способвынудите vars подставить переменную и получить следующий вывод:

TASK [output : Hello World] ***

1 Ответ

1 голос
/ 04 ноября 2019

Q: "Есть ли способ заставить 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"

Q: "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
...