Приведенный ниже код отклонен как синтаксически неверный:
{%
if inventory_hostname in groups.aptcache
set cachehost = 'localhost'
else
set cachehost = groups['aptcache'] | first
endif
%}
cache={{ cachehost }}
Надеюсь, мои намерения достаточно ясны, чтобы гуру Jinja2 поправил меня ... Пожалуйста?
Вы не можете поместить 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 }}