Я пытаюсь сделать Ansible playbook тем, что вызывает рулоны динамически. Теперь Ansible не поддерживает это изначально, поэтому я подумал, что могу обойти это с помощью некоторых шаблонов Jinja2 ... но я даже не уверен, как это сделать на самом деле. Так скажем, у меня есть список ролей в переменнойAnsible - использование Jinja 2 для динамических ролей
role_vars:
- role1
- role2
- role3
Мой шаблон:
- hosts: localhost
roles: >
{%- for name in role_vars %}
{{- '- ' + name + '\n ' -}}
{%- endfor %}
Я предполагаю, что это должно дать что-то вроде этого:
- hosts: localhost
roles:
- role1
- role2
- role3
, но я могу не получится. Итак, как я? Возможно ли это?
Я побежал, и это дает мне: ОШИБКА! Синтаксическая ошибка при загрузке YAML. Ошибка в файле file.yml ': строка 23, столбец 6, но может быть находиться в другом месте в файле в зависимости от конкретной проблемы синтаксиса. Нарушитель Похоже, что строка: роли: {% для имени в role_vars -%} ......... Я нахожусь под впечатлением, вам нужен «>» к трубе это для того, чтобы распознать jinja2, но это также дало мне ошибку. – ExaExcellion
Я думаю, что я вас неправильно понял ... Этот шаблон не должен быть напрямую загружен в игру-книгу, а в качестве источника модуля «template». Невозможно использовать jinja2 в таких играх. –
Я понял, что символ '>' должен обозначать встроенные шаблоны. Очевидно, это может привести к запутанным сценариям, и это также не должно использоваться слишком много. Но, как вы сказали, в этом случае лучше использовать модуль, так что спасибо! – ExaExcellion