Jinja2 模板变量到一行
Jinja2 template variables to one line
是否可以创建一个将变量放在一行的 jinja2 模板?类似这样,但不是在结果中有两行,而是用逗号分隔。
模板:
{% for host in groups['tag_Function_logdb'] %}
elasticsearch_discovery_zen_ping_unicast_hosts = {{ host }}:9300
{% endfor %}
结果:
elasticsearch_discovery_zen_ping_unicast_hosts = 1.1.1.1:9300
elasticsearch_discovery_zen_ping_unicast_hosts = 2.2.2.2:9300
想要的结果:
elasticsearch_discovery_zen_ping_unicast_hosts = 1.1.1.1:9300,2.2.2.2:9300
编辑,这适用于 2 个项目,下面是更好的解决方案:
elasticsearch_discovery_zen_ping_unicast_hosts = {% for host in groups['tag_Function_logdb'] %}
{{ host }}:9300
{%- if loop.first %},{% endif %}
{% endfor %}
你可以这样做:
elasticsearch_discovery_zen_ping_unicast_hosts =
{% for host in groups['tag_Function_logdb'] %}
{{ host }}:9300
{% if not groups['tag_Function_logdb'].last %}
,
{% endif %}
{% endfor %}
我可以通过在循环之前放置我想要的指令然后使用 loop.first
和 -
空白控件正确格式化逗号分隔列表来实现此功能。
elasticsearch_discovery_zen_ping_unicast_hosts = {% for host in groups['tag_Function_logdb'] %}
{{ host }}:9300
{%- if loop.first %},{% endif %}
{% endfor %}
这是对我有用的解决方案。我发现 tweeks200 的解决方案只适用于 2 个循环。无论循环次数如何,这都有效。感谢大家的帮助。
elasticsearch_discovery_zen_ping_unicast_hosts={% for host in groups['tag_Function_logdb'] %}
{{ host }}:9300
{%- if not loop.last %},{% endif %}
{% endfor %}
是否可以创建一个将变量放在一行的 jinja2 模板?类似这样,但不是在结果中有两行,而是用逗号分隔。
模板:
{% for host in groups['tag_Function_logdb'] %}
elasticsearch_discovery_zen_ping_unicast_hosts = {{ host }}:9300
{% endfor %}
结果:
elasticsearch_discovery_zen_ping_unicast_hosts = 1.1.1.1:9300
elasticsearch_discovery_zen_ping_unicast_hosts = 2.2.2.2:9300
想要的结果:
elasticsearch_discovery_zen_ping_unicast_hosts = 1.1.1.1:9300,2.2.2.2:9300
编辑,这适用于 2 个项目,下面是更好的解决方案:
elasticsearch_discovery_zen_ping_unicast_hosts = {% for host in groups['tag_Function_logdb'] %}
{{ host }}:9300
{%- if loop.first %},{% endif %}
{% endfor %}
你可以这样做:
elasticsearch_discovery_zen_ping_unicast_hosts =
{% for host in groups['tag_Function_logdb'] %}
{{ host }}:9300
{% if not groups['tag_Function_logdb'].last %}
,
{% endif %}
{% endfor %}
我可以通过在循环之前放置我想要的指令然后使用 loop.first
和 -
空白控件正确格式化逗号分隔列表来实现此功能。
elasticsearch_discovery_zen_ping_unicast_hosts = {% for host in groups['tag_Function_logdb'] %}
{{ host }}:9300
{%- if loop.first %},{% endif %}
{% endfor %}
这是对我有用的解决方案。我发现 tweeks200 的解决方案只适用于 2 个循环。无论循环次数如何,这都有效。感谢大家的帮助。
elasticsearch_discovery_zen_ping_unicast_hosts={% for host in groups['tag_Function_logdb'] %}
{{ host }}:9300
{%- if not loop.last %},{% endif %}
{% endfor %}