Ansible

如何在單個塊中執行多行 Jinja2 條件?

  • August 25, 2017

以下程式碼因語法錯誤而被拒絕:

{%
   if inventory_hostname in groups.aptcache
       set cachehost = 'localhost'
   else
       set cachehost = groups['aptcache'] | first
   endif
%}
cache={{ cachehost }}

我希望,我的意圖足夠清楚,可以讓 Jinja2 大師糾正我……拜託?

除非它是 if 表達式,否則不能將 if-then-else 放在一個塊中。任何一個:

{% 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 }}

引用自:https://serverfault.com/questions/870357