Ala*_*mHo 0 jinja2 ansible ansible-2.x
我在使用 ansible jinja 模板时遇到了问题。基本上我只需要列出 server_name 是更具可读性的格式。
这是我在 groups/all.yml 中定义的变量
server_name:
- domain1.mydomain.com
- domain2.mydomain.com
- domain3.mydomain.com
- domain4.mydomain.com
Run Code Online (Sandbox Code Playgroud)
这是我的 myvhost.conf.j2 模板
server_name {% for name in server_name -%}
{{ name }}
{% if loop.last -%};{%- endif -%}{% endfor %}
Run Code Online (Sandbox Code Playgroud)
结果是:
server_name domain1.mydomain.com
domain2.mydomain.com
domain3.mydomain.com
domain4.mydomain.com
;
Run Code Online (Sandbox Code Playgroud)
预期输出:
server_name domain1.mydomain.com
domain2.mydomain.com
domain3.mydomain.com
domain4.mydomain.com;
Run Code Online (Sandbox Code Playgroud)
我已经尝试了几种带有空格控制或缩进的模板组合,但它弄乱了结果。请亲切指教
要打印任何一个换行符后跟16个空格,或者 ;,在变量值之后,所以它是一个if-else语句的必然要求:
server_name {% for name in server_name -%}
{{ name }}
{%- if not loop.last %}
{% else %};{% endif %}{% endfor %}
Run Code Online (Sandbox Code Playgroud)