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

Ansible任务引用字典成员时when条件恒为false问题排查

Ansible任务条件判定失效原因及修复方案

核心触发原因

Ansible的when子句默认会直接解析Jinja2表达式,不需要手动包裹{{ }}插值标记,这是官方明确规定的语法规则。你在条件中额外添加了{{ }},会导致表达式被提前求值为字符串格式的布尔值,后续Ansible二次解析时逻辑异常,最终返回非预期的false结果,导致条件匹配失败。

潜在次要问题

你提供的任务代码存在YAML缩进错误,set_fact作为和name同级的任务顶层属性,二者应该保持相同的缩进层级,缩进不规范也可能导致Ansible解析任务属性时出错。

修正后的完整任务代码

- name: "Convert distro name to number"
  set_fact:
    cacheable: yes
    mydict: "{{ mydict | combine({ 'distribution_number': 6}) }}"
  when: mydict['distribution_name'] == 'rh7'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:36:02