Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ansible Jinja2 For循环中的变量_Ansible_Jinja2 - Fatal编程技术网

Ansible Jinja2 For循环中的变量

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

我们正试图找到一种方法,在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(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]) %}