下面的代码由于语法不正确而被拒绝:
{%
if inventory_hostname in groups.aptcache
set cachehost = 'localhost'
else
set cachehost = groups['aptcache'] | first
endif
%}
cache={{ cachehost }}
我希望我的意图足够清楚,以便 Jinja2 专家可以纠正我……好吗?
答案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 }}