ansible模板-尽可能使其干燥

ansible模板-尽可能使其干燥,ansible,jinja2,Ansible,Jinja2,是否有任何方法可以使用default()过滤器正确干燥此块 {% if item.aliases is defined %} server_name {{ item.target }} {{ item.aliases|join(" ") }} {% else %} server_name {{ item.target }}; {% endif %} 我尝试了,但没有成功=>错误:预期标记为“打印结束语句”,获得“项目” {{item.target item.aliases|joi

是否有任何方法可以使用
default()
过滤器正确干燥此块

{% if item.aliases is defined %}
   server_name {{ item.target }} {{ item.aliases|join(" ") }}
{% else %}
  server_name {{ item.target }};
{% endif %}
我尝试了,但没有成功=>
错误:预期标记为“打印结束语句”,获得“项目”

  {{item.target item.aliases|join(" “)|default( item.target ) }}
我也试过了,但没有达到预期的效果

    server_name {{[item.target ,item.aliases|default('')]|join(' ')}};

    # this print :  
    #    server_name actual.domain.com ['alias1.domain.com', 'alias2.domain.com'];
    # and my expected result is
    #    server_name actual.domain.com alias1.domain.com alias2.domain.com ;
    #  or ( when item.aliases is not defined 
    #    server_name actual.domain.com

明白了。。。我的书面陈述是错误的:

  server_name {{item.target}} {{item.aliases|default('')|join(' ')}};
输出

  server_name actual.domain.com alias1.domain.com alias2.domain.com ;
  # or
  server_name actual.domain.com;