Как сделать многострочные Jinja2-условия в одном блоке?
Приведенный ниже код отклонен как синтаксически неверный:
{%
if inventory_hostname in groups.aptcache
set cachehost = 'localhost'
else
set cachehost = groups['aptcache'] | first
endif
%}
cache={{ cachehost }}
Надеюсь, мои намерения достаточно ясны, чтобы гуру Джинджи2 поправил меня... Пожалуйста?
1 ответ
Решение
Вы не можете поместить if-then-else в один блок, если это не выражение if. Или:
{% if inventory_hostname in groups.aptcache %}
{% set cachehost = 'localhost' %}
{% else %}
{% set cachehost = groups['aptcache'] | first %}
{% endif %}
cache={{ cachehost }}
или же
cache={{ 'localhost' if inventory_hostname in groups.aptcache else groups['aptcache'] | first }}