Ansible jinja - 如果循环最后没有换行符
Ansible jinja - If loop last without newline
我在使用 ansible jinja 模板时遇到问题。基本上我只需要列出 server_name 是更具可读性的格式。
这是我在groups/all.yml
中定义的变量
server_name:
- domain1.mydomain.com
- domain2.mydomain.com
- domain3.mydomain.com
- domain4.mydomain.com
这是我 myvhost.conf.j2
的模板
server_name {% for name in server_name -%}
{{ name }}
{% if loop.last -%};{%- endif -%}{% endfor %}
结果是:
server_name domain1.mydomain.com
domain2.mydomain.com
domain3.mydomain.com
domain4.mydomain.com
;
预期输出:
server_name domain1.mydomain.com
domain2.mydomain.com
domain3.mydomain.com
domain4.mydomain.com;
我已经尝试了几种模板组合与空白控制或缩进,但它搞砸了结果。请多多指教
您想打印或者一个换行符后跟16个空格,或者 ;
,在变量值之后,所以这是对 if-else 语句的自然要求:
server_name {% for name in server_name -%}
{{ name }}
{%- if not loop.last %}
{% else %};{% endif %}{% endfor %}
我在使用 ansible jinja 模板时遇到问题。基本上我只需要列出 server_name 是更具可读性的格式。
这是我在groups/all.yml
中定义的变量server_name:
- domain1.mydomain.com
- domain2.mydomain.com
- domain3.mydomain.com
- domain4.mydomain.com
这是我 myvhost.conf.j2
的模板server_name {% for name in server_name -%}
{{ name }}
{% if loop.last -%};{%- endif -%}{% endfor %}
结果是:
server_name domain1.mydomain.com
domain2.mydomain.com
domain3.mydomain.com
domain4.mydomain.com
;
预期输出:
server_name domain1.mydomain.com
domain2.mydomain.com
domain3.mydomain.com
domain4.mydomain.com;
我已经尝试了几种模板组合与空白控制或缩进,但它搞砸了结果。请多多指教
您想打印或者一个换行符后跟16个空格,或者 ;
,在变量值之后,所以这是对 if-else 语句的自然要求:
server_name {% for name in server_name -%}
{{ name }}
{%- if not loop.last %}
{% else %};{% endif %}{% endfor %}