Ran*_*ndy 5 ansible ansible-template
我正在使用with_subelements循环遍历一些嵌套数据。我想遍历嵌套元素,但在迭代时对第二级数据进行排序。
- name: Can I haz sorted nested elements?
debug: msg="device={{item.0.key}}, mounted at {{item.1.mount_point}}"
when: profile_data.enabled
with_subelements:
- profile_data.layouts
- partitions
Run Code Online (Sandbox Code Playgroud)
我尝试了一些方法来对列表进行排序,但我怀疑我with_subelements是否以应该使用的方式使用它。
我试过这个没有成功:
with_subelements:
- profile_data.layouts
- "{{ partitions|sort(attribute='number') }}"
Run Code Online (Sandbox Code Playgroud)
这可能不编写我自己的with_sorted_subelements插件吗?
这完全取决于您真正需要的结构中的哪些数据。
这是对嵌套元素进行排序的示例:
---
- hosts: localhost
gather_facts: no
vars:
mydict:
key1:
key: hello
persons:
- name: John
age: 30
- name: Mark
age: 50
- name: Peter
age: 40
key2:
key: world
persons:
- name: Mary
age: 30
- name: Julia
age: 25
- name: Paola
age: 35
tasks:
- debug:
msg: "{{ item.0.k }} {{ item.1.age }} {{ item.1.name }}"
with_subelements:
- "{{ mydict | json_query('*.{k:key, p:sort_by(persons, &age)}') }}"
- p
Run Code Online (Sandbox Code Playgroud)
下面我就key为k和分类persons为p从原来的字典,它喂with_subelements。
输出是:
"msg": "world 25 Julia"
"msg": "world 30 Mary"
"msg": "world 35 Paola"
"msg": "hello 30 John"
"msg": "hello 40 Peter"
"msg": "hello 50 Mark"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2454 次 |
| 最近记录: |