You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jinja2模板遍历变量时如何为每个循环项自增整数值

问题原因

  • 你在Ansible任务层和Jinja2模板内重复做了列表循环,且任务层的循环会导致template模块被多次调用,后续渲染结果会覆盖之前的输出文件,无法得到完整的合并结果
  • 任务层定义的index_var仅作用于Ansible任务的循环,不会正确传递到Jinja2内部的循环中,每次模板渲染拿到的index都是固定值
  • 你定义的offset是1000,和预期输出的100起始值不匹配

正确实现方案

1. 修正Ansible任务配置

移除任务层的循环配置,仅保留单次template渲染,调整offset为你需要的起始值100:

- name: Templating 
  vars:
    offset: 100
  template:
    src: "/var/opt/file.j2"
    dest: "/var/opt/file"

2. 修正Jinja2模板内容

使用Jinja2循环内置的loop.index0变量(从0开始计数的当前循环索引)来实现自增:

{% for item in variable %}
configuration_{{ item }}:
  value:
  - {{ offset + loop.index0 }}
  path:
  - /var/opt/{{ item }}
{% endfor %}

执行上述配置后即可得到你预期的输出结果。


内容的提问来源于stack exchange,提问作者mariiz444

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 04:39:03