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

Ansible 2.9.2如何仅提取hw_eth0的ipaddresses字段值?

解决Ansible中JMESPath提取hw_eth0.ipaddresses的语法问题

嗨,我来帮你搞定这个问题!你遇到的JMESPath语法错误,是因为误用了数组投影的语法——{}是用来处理数组/列表类型数据的,但你的hw_eth0是一个单个的字典对象,不是数组,所以不能这么写。

正确的写法有两种:

方法1:直接用Ansible变量引用(最简单)

如果你的output.instance.hw_eth0结构明确,不需要复杂的JMESPath查询,直接用点符号引用就行:

- debug:
    msg: "{{ output.instance.hw_eth0.ipaddresses }}"

方法2:正确的JMESPath语法

如果一定要用json_query,直接通过点符号访问对象属性即可,不需要加{}:

- debug:
    msg: "{{ output.instance | json_query('hw_eth0.ipaddresses') }}"

为什么之前的写法错了?

你写的hw_eth0{}.ipaddresses里,{}是JMESPath的数组投影语法,它的作用是遍历数组中的每个元素,提取指定属性。但你的hw_eth0是单个字典(比如像下面这样的结构),不是数组,所以这个语法就不适用了:

output:
  instance:
    hw_eth0:
      ipaddresses: null
      macaddress: "aa:bb:cc:dd:ee:ff"
      # 其他字段...

用上面两种正确写法,就能准确提取到hw_eth0里的ipaddresses值啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:01:39