如何在Jinja2中添加分隔符

问题描述 投票:1回答:1

我需要得到像这样的IP列表(引号中的值,逗号分隔且没有空格)。

['172.16.1.67','172.16.1.68','172.16.1.69']

为此,我正在尝试在我的剧本中调用jinja2模板。模板的内容是:

[{% for servidor in groups['servidores'] %}{{ hostvars[servidor].ansible_host}}{% endfor %}]

此模板生成此字符串:

[172.16.1.67172.16.1.68172.16.1.69]

我试图使用过滤器和我发现的东西,但无论我怎么做,我最终都会出错(因为我发现大多数答案都假设读者知道如何应用提供的解决方案,这不是我的情况)。我的猜测是我应该应用一个“加入”过滤器,但我不知道该怎么做。

请你帮助我好吗?

谢谢!

ansible jinja2
1个回答
1
投票

您可以使用引号格式化IP并在将它们与输出中的','连接之前先将它们附加到列表中:

{%- set ips = [] -%}
{%- for servidor in groups['servidores'] %}
    {% do ips.append("'%s'" | format(hostvars[servidor].ansible_host)) %}
{% endfor -%}
[{{ ips | join(',') }}]
© www.soinside.com 2019 - 2024. All rights reserved.