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

Ansible中如何打印嵌套变量结构里groups字段的所有对应值

问题根因

你的调试表达式输出不符合预期,是因为cluster1.projects是列表类型(YAML 中以-开头的条目构成列表),无法直接通过.groups访问下属属性,需要先定位到列表内的项目字典,再提取groups字典的所有值。

解决方案

场景1:projects列表仅有1个项目

直接取列表第一个元素的groups值遍历输出即可,playbook示例如下:

---
- hosts: localhost
  tasks:
  - debug:
      msg: "{{ item }}"
    loop: "{{ cluster1.projects[0].groups.values() | list }}"

场景2:projects列表包含多个项目(通用方案)

通过Jinja2过滤器批量提取所有项目下groups的所有值,无需关心列表长度,playbook示例如下:

---
- hosts: localhost
  tasks:
  - debug:
      msg: "{{ item }}"
    loop: "{{ cluster1.projects | map(attribute='groups') | map('dict2items') | flatten | map(attribute='value') | list }}"

两种方案执行后都会按行输出你需要的foo1、bar1、bar2结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 21:15:02