Jinja2 For 循环中的变量
Variable in Jinja2 For Loop
我们正在尝试想出一种在 jinja2 For 循环中使用 ansible facts 的方法。
例如,我想获取属于我的 memcached 组的所有服务器以及基于版本的组(类似于 tag_release_dev
或 tag_release_prod
)。当我尝试在 For 循环中使用 {{ tt_release }}
时,它计算的是 {{ tt_release }}
而不是变量的值。有没有办法在循环定义中使用变量?
{% for host in groups["tag_function_mem"] | intersect(groups["tag_release_{{ tt_release }}"]) %}
{{ host }}:11211
{%- if not loop.last %},{% endif %}
{%- if loop.last %}"{% endif %}
{% endfor %}
{% endif %}
it evaluates {{ tt_release }}
rather than the value of the variable.
这是因为您已经在表达式中了。您不能嵌套表达式 - 也不需要。
你想要的是连接字符串"tag_release_"
和变量tt_release
。在 Jinja2 中,连接是通过 +
.
完成的
{% for host in groups["tag_function_mem"] | intersect(groups["tag_release_" + tt_release]) %}
我们正在尝试想出一种在 jinja2 For 循环中使用 ansible facts 的方法。
例如,我想获取属于我的 memcached 组的所有服务器以及基于版本的组(类似于 tag_release_dev
或 tag_release_prod
)。当我尝试在 For 循环中使用 {{ tt_release }}
时,它计算的是 {{ tt_release }}
而不是变量的值。有没有办法在循环定义中使用变量?
{% for host in groups["tag_function_mem"] | intersect(groups["tag_release_{{ tt_release }}"]) %}
{{ host }}:11211
{%- if not loop.last %},{% endif %}
{%- if loop.last %}"{% endif %}
{% endfor %}
{% endif %}
it evaluates
{{ tt_release }}
rather than the value of the variable.
这是因为您已经在表达式中了。您不能嵌套表达式 - 也不需要。
你想要的是连接字符串"tag_release_"
和变量tt_release
。在 Jinja2 中,连接是通过 +
.
{% for host in groups["tag_function_mem"] | intersect(groups["tag_release_" + tt_release]) %}