[英]Ansible / jinja2 list of dicts of lists
我试图从列表的字典列表中组成一个列表,但是失败了。 尝试获取r1的所有对等方的列表
数据示例yaml:
---
conn:
- id: asd
peers:
- name: r1
- name: r2
- id: dsa
peers:
- name: r1
- name: r3
- id: sad
peers:
- name: r2
- name: r4
输出应为[r2,r3]
因为r1仅将r2和r3作为对等体。 我如何从一项艰巨的任务中获得这份清单?
您可能想探索JMESPath :
---
- hosts: localhost
gather_facts: no
vars:
conn:
- id: asd
peers:
- name: r1
- name: r2
- id: dsa
peers:
- name: r1
- name: r3
- id: sad
peers:
- name: r2
- name: r4
tasks:
- debug:
msg: "{{ conn | json_query(qry) }}"
vars:
qry: '[*].{p:peers[].name} | [?contains(p,`r1`)].p[] | [?@!=`r1`]'
选择peers[].name
作为p
,仅选择具有r1
作为p
元素的项,然后展平列表并有效地删除任何r1
项,结果仅保留r1个对等项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.