Я пытаюсь извлечь несколько значений из поставленной задачи.
, пожалуйста, посмотрите мой пример playbook
- name: Iterate JSON
set_fact:
app_item: "{{ item.name }}"
when: "{{ result.results|json_query('[].\"scope member\"[?\"vdom\"==`\"vdom-shop\"`].vdom')|flatten|first }} == vdom-shop"
with_items: "{{ result.results }}"
, пожалуйста, посмотрите вывод json из предыдущего задания
{
"msg": {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"failed": false,
"msg": "Custom Query Success",
"results": [
{
"name": "FG-04-Policy",
"obj ver": 3,
"oid": 1196,
"package settings": {
"central-nat": "disable",
"fwpolicy-implicit-log": "disable",
"fwpolicy6-implicit-log": "disable",
"inspection-mode": "proxy"
},
"scope member": [
{
"name": "IN-FG-04",
"vdom": "vdom-shop"
}
],
"type": "pkg"
},
{
"name": "FG-04-DC",
"obj ver": 23,
"oid": 1216,
"package settings": {
"central-nat": "disable",
"fwpolicy-implicit-log": "disable",
"fwpolicy6-implicit-log": "disable",
"inspection-mode": "proxy"
},
"scope member": [
{
"name": "IN-FG-04",
"vdom": "vdom1-dc"
}
],
"type": "pkg"
}
]
}
}
ожидаемый выходной результат должен быть таким, как показано ниже, со следующим условием.
"name": "FG-04-Policy" when "vdom"== "vdom-shop"
"name": "FG-04-DC" when "vdom"== "vdom1-dc"
По сути, я хотел извлечь "FG-04-Policy", когда условие совпадает с приведенным выше примером, я ожидаю имя как FG-04-Policy, когда значение vdom равно vdom-shop
Может ли кто-нибудь помочь мне здесь