繁体   English   中英

Ansible / Jinja2列表的字典

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM