我需要得到像这样的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]
我试图使用过滤器和我发现的东西,但无论我怎么做,我最终都会出错(因为我发现大多数答案都假设读者知道如何应用提供的解决方案,这不是我的情况)。我的猜测是我应该应用一个“加入”过滤器,但我不知道该怎么做。
请你帮助我好吗?
谢谢!
您可以使用引号格式化IP并在将它们与输出中的','
连接之前先将它们附加到列表中:
{%- set ips = [] -%}
{%- for servidor in groups['servidores'] %}
{% do ips.append("'%s'" | format(hostvars[servidor].ansible_host)) %}
{% endfor -%}
[{{ ips | join(',') }}]