Можно использовать выражения Jinja2 в файле ролей vars - PullRequest
0 голосов
/ 27 апреля 2020

Мне интересно, возможно ли использовать выражение Jinja2 {% if%} внутри файла vars?

Скажем, у меня есть:

az:
 az1: foo
 az2: bar
 az3: foobar

{% if az == az['az1'] %}
  floating_ip_pool = bar
{% endif %}

По сути, я стараюсь избегать необходимости устанавливать эти переменные каждый раз, так как они всегда будут основаны на аз.

Спасибо.

1 Ответ

1 голос
/ 27 апреля 2020

Это неверный синтаксис. Файл vars должен сначала быть проанализирован как документ YAML, и введение этого синтаксиса Jinja приводит к чему-то, что больше не является допустимым YAML.

Вместо этого вы можете сделать что-то вроде этого:

az:
 az1: foo
 az2: bar
 az3: foobar

floating_ip_pool: "{% if target_az == az['az1'] %}bar{% endif %}"
...