Ansible Jinja2 For循环中的变量
我们正试图找到一种方法,在jinja2中使用ansible事实进行循环 例如,我希望获取属于我的memcached组的所有服务器以及基于发布的组(类似于Ansible Jinja2 For循环中的变量,ansible,jinja2,Ansible,Jinja2,我们正试图找到一种方法,在jinja2中使用ansible事实进行循环 例如,我希望获取属于我的memcached组的所有服务器以及基于发布的组(类似于tag\u release\u dev或tag\u release\u prod)。当我尝试在For循环中使用{{tt_release}}时,它计算的是{{tt_release}},而不是变量的值。有没有办法在循环定义中使用变量 {% for host in groups["tag_function_mem"] | intersect(group
tag\u release\u dev
或tag\u release\u 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 %}
它计算{{tt_release}}
而不是变量的值
这是因为您已经在表达式中。您不能嵌套表达式,也不需要嵌套
您想要的是将字符串“tag\u release\uu”
和变量tt\u release
连接起来。在Jinja2中,连接是通过+
完成的
{% for host in groups["tag_function_mem"] | intersect(groups["tag_release_" + tt_release]) %}
它计算{{tt_release}}
而不是变量的值
这是因为您已经在表达式中。您不能嵌套表达式,也不需要嵌套
您想要的是将字符串“tag\u release\uu”
和变量tt\u release
连接起来。在Jinja2中,连接是通过+
完成的
{% for host in groups["tag_function_mem"] | intersect(groups["tag_release_" + tt_release]) %}