我正在尝试在ansible
任务中打印主机列表;
我想在其中留空格,但是以下循环无法达到目的:
{% for host in groups['all'] -%} {{ host }}:6379 {%- endfor %}
有什么建议吗?
答案 0 :(得分:1)
如果您打算将它们全部放在一行上,并且不介意在开始时留有空格,则可以简单地执行以下操作:
{% for host in groups['all'] -%} {{ ' ' ~ host }}:6379 {%- endfor %}
您还可以在每个项目的末尾添加一个字符(例如空格或其他内容),而跳过最后一个。注意if和endif之间的空格:
{% for host in groups['all'] -%}
{{ host }}:6379
{%- if not loop.last %} {% endif %}
{%- endfor %}
答案 1 :(得分:0)
作为jinia循环的替代方法,您可以使用ansibles join-filter,请参见https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#id8
在这种情况下:
{{ groups["all"] | join(":6379 ") }}
加入与拆分相反。 split使用字符串和定界符,然后返回列表。 join使用一个列表和一个字符串将所有列表元素连接为一个字符串。