ansible - Ansible jinja - 如果循环最后没有换行符
问题描述
我在使用 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 %}
推荐阅读
- azure - 已发布的 Web 应用程序 Auth AD B2C:/signin/B2C_1_mysigninoutpolicy 的 Error404
- java - 如何解决错误:无法在 SpringBoot 应用程序中找到或加载主类
- android - fromjson 无法解析科学记数法 - Android
- apache-spark - 使用 spark 向量化一组行
- c++ - 无法显示矢量
- data-structures - 如何在 num 库中的 BigInt 结构上实现 Deserialize 特征?
- swift - 仅动态调整元素的一个维度
- docker - nginx container fail to start
- excel - 列表框中的选定行复制到另一个列表框
- google-cloud-platform - Trying to install a node on Google Cloud platform, and use that node in a function