Как сделать многострочные 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 }}
Другие вопросы по тегам