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

Ansible中如何合并两个索引对齐的字典列表生成目标结构

你已经通过zip过滤器完成了两个列表的索引对齐,接下来只需对每组配对的字典执行合并操作,再按需求包裹为单元素数组即可,以下是两种实现方案:


方案1:过滤器链式调用(简洁写法)

依赖Ansible自带的combine过滤器和json_query过滤器(需提前安装jmespath依赖包):

- name: 合并服务器与密码信息生成目标结构
  set_fact:
    looped: "{{ server.results | zip(password) | map('combine') | map('json_query', '[@]') | list }}"

如果不需要每个字典单独包裹为小数组,删除末尾的| map('json_query', '[@]')即可。


方案2:循环实现(兼容性更好,无额外依赖)

适合不希望安装额外依赖的场景,直接通过循环逐组处理:

- name: 循环合并服务器与密码信息
  set_fact:
    looped: "{{ looped | default([]) + [ [ item.0 | combine(item.1) ] ] }}"
  loop: "{{ server.results | zip(password) | list }}"

验证输出

执行后通过debug即可看到符合预期的结果:

- name: 输出合并后结果
  debug:
    var: looped

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 21:00:00