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

Ansible中with_sequence结合when条件执行异常及替代方案求助

Ansible中with_sequence结合when条件执行异常及替代方案求助

大家好,我最近在写Ansible任务时遇到了一个挺费解的问题,想过来请教下各位前辈。

我原本想实现的逻辑很简单:只有当变量y的整数值大于x的整数值时,才执行block里的任务——通过with_sequence从x+1循环到y,每次引入abc.yaml任务。对应的代码是这样的:

- name: ABC
  block:
    - include_tasks: abc.yaml
      with_sequence: start={{ (x | int) + 1 }} end={{ y | default(1, true) | int }}
      loop_control:
        loop_var: item
  when:
    - (y | default(1, true) | int) > (x | int)

但实际运行时出了问题:当x和y的值相等的时候,我本以为when条件会不满足,直接跳过整个block,结果反而触发了报错,错误信息如下:

TASK [include_tasks] ********************************
fatal: [localhost]: FAILED! => {"msg": "to count backwards make stride negative"}

我实在搞不懂,明明已经加了when条件限制,为什么x=y时还会走到with_sequence的解析逻辑里?有没有大佬能帮我解释下这个原因?另外,如果这个写法本身有问题,有没有更稳妥的替代方案能实现我想要的循环逻辑呀?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 07:54:50