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

Ansible如何根据字典子键匹配值,将对应父键设置为fact

实现方案

你可以通过两种常见方式实现该需求:

方式1:直接遍历原字典匹配(无需依赖shell任务的执行结果)

直接对my_dict遍历判断,匹配到对应值时直接取父键赋值:

- set_fact:
    desired_output: "{{ item.key }}"
  loop: "{{ my_dict | dict2items }}"
  # 可替换为你要匹配的任意目标值
  when: item.value.some_key == 'second_value'

如果存在多个匹配的父键,且你需要保存所有匹配结果,可以修改为数组存储的写法:

- set_fact:
    desired_output: "{{ desired_output | default([]) + [item.key] }}"
  loop: "{{ my_dict | dict2items }}"
  when: item.value.some_key == 'second_value'

方式2:基于之前shell任务的返回结果匹配

如果你需要依赖shell命令实际执行输出的结果做判断,可以使用exec_output的返回值遍历:

- set_fact:
    desired_output: "{{ item.item.key }}"
  loop: "{{ exec_output.results }}"
  # stdout为shell命令的输出结果,和目标值匹配时赋值
  when: item.stdout == 'second_value'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:24:01