Loops 在jinja循环中打印空白
我正在尝试打印Loops 在jinja循环中打印空白,loops,ansible,jinja2,Loops,Ansible,Jinja2,我正在尝试打印ansible任务中的主机列表 我希望在它们之间留有空格,但以下循环无法达到目的: {% for host in groups['all'] -%} {{ host }}:6379 {%- endfor %} 有什么建议吗?如果您希望将所有建议都放在一行中,并且不介意在开始时留出空间,您可以简单地执行以下操作: {% for host in groups['all'] -%} {{ ' ' ~ host }}:6379 {%- endfor %} 您还可以在跳过最后一个项目的
ansible
任务中的主机列表
我希望在它们之间留有空格,但以下循环无法达到目的:
{% for host in groups['all'] -%} {{ host }}:6379 {%- endfor %}
有什么建议吗?如果您希望将所有建议都放在一行中,并且不介意在开始时留出空间,您可以简单地执行以下操作:
{% for host in groups['all'] -%} {{ ' ' ~ host }}:6379 {%- endfor %}
您还可以在跳过最后一个项目的同时,在每个项目的末尾添加一个字符(例如空格或其他内容)。注意if和endif之间的间距:
{% for host in groups['all'] -%}
{{ host }}:6379
{%- if not loop.last %} {% endif %}
{%- endfor %}
作为jinia循环的替代方法,您可以使用ansibles联接筛选器,请参见中的 在这种情况下:
{{ groups["all"] | join(":6379 ") }}
Join与split相反。split接受一个字符串和一个分隔符,然后返回一个列表。join使用一个列表和一个字符串将所有列表元素连接到一个字符串。感谢这两个选项;使用第二个,看起来更优雅;