Ansible Jinja2-for循环中的全局变量更新

Ansible Jinja2-for循环中的全局变量更新,ansible,jinja2,Ansible,Jinja2,我正在为某个服务编写一个配置脚本,我希望为我们的配置管理工具(Ansible)制作一个模板。然而,有一个特殊的动作,这似乎是一个Jinja2限制(如果这个词在这种情况下可以接受的话),我无法克服: {% set min = 0 %} {% set max = 5500 %} {% for item in list_of_items %} for i in {min..max}; do command {{ item }} --arg 1 commnand_stuff $i; done

我正在为某个服务编写一个配置脚本,我希望为我们的配置管理工具(Ansible)制作一个模板。然而,有一个特殊的动作,这似乎是一个Jinja2限制(如果这个词在这种情况下可以接受的话),我无法克服:

{% set min = 0 %}
{% set max = 5500 %}
{% for item in list_of_items %}
    for i in {min..max}; do command {{ item }} --arg 1 commnand_stuff $i; done
    {% set min = max + 1 %}
    {% set max = max * 2 %}
#fi
{% endfor %}
预期(期望)结果是: -迭代1-
min=0
max=5500
-迭代2-
min=5501
max=11000

实际结果是: -最小值和最大值在所有循环迭代中都有一个常量-
min=0
max=5500

那么,如何在for循环中修改Jinja2中的全局变量呢?

set在循环中不起作用。看

可以改用loop.index。下面的模板

{% for item in list_of_items %}
     {{ 5500 * (loop.index-1) + 1 }}..{{ 5500 * loop.index }}
{% endfor %}
给予

 1..5500
 5501..11000
 11001..16500