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

Ansible中defaults定义的device_pattern变量提示未定义如何解决?

问题根因

核心错误是Ansible的when条件语法使用错误:when语句默认处于Jinja2解析上下文,不需要手动添加变量插值符{{ }}。

你当前的写法会先把device_pattern解析为具体值nvme,最终when语句实际要执行的判断变为nvme in ansible_devices[item],此时Ansible会将nvme当作变量名查找,自然就抛出了'nvme' is undefined的报错。

修复方法

直接删除when条件中的{{ }}即可,修正后的task配置如下:

#MDM RAID0 All available free unmounted devices
- name: "Perform MDM Raid0 on all qualifying available devices on any cpu node"
  include_tasks:
    file: pfm_all_available_devices_mdm.yml
    apply:
      tags: pfm_all_available_devices_mdm
  when:
    - device_pattern in ansible_devices[item]

如果你的需求是判断设备名称包含对应字符串,还可以根据实际的ansible_devices结构调整判断逻辑,比如判断device_pattern in item(如果item是设备名的话)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 16:24:04