我有一个可变值的Ansible剧本-
"instances": [
{
"architecture": "x86_64",
"tags": {
"A": "B",
"C": "D"
}
},
{
"architecture": "x86",
"tags": {
"A": "X",
"G": "D"
}
}
]
实例列表是动态的,并且每次运行时#value可能有所不同。
我要-
我尝试了with_subelements
,但是运气不好,因为它需要列表。
答案 0 :(得分:1)
第一个任务可以使用纯Jinja来完成,第二个任务则需要一些JMESPath。
- name: List archs with tag A present
debug:
msg: >-
{{ instances
| selectattr('tags.A','defined')
| map(attribute='architecture')
| list
| unique
}}
- name: List archs with any tag set to D
debug:
msg: >-
{{ instances
| json_query('[?contains(values(tags),`D`)]')
| map(attribute='architecture')
| list
| unique
}}