【发布时间】:2021-07-06 03:24:58
【问题描述】:
我正在寻找基于查询结果的返回值,到目前为止我没有得到想要的结果。 json 看起来像这样,来自 ansible var
{
"header": {
"nodes": {
"node1": {
"last_shutdown": "date",
"level": {
"kind_node": {}
},
"state": {
"running": "true",
"more": {
"type": "admin"
}
}
},
"node2": {
"last_shutdown": "date",
"level": {
"kind_node": {}
},
"state": {
"running": "true",
"more": {
"type": "engine"
}
}
},
"node3": {
"last_shutdown": "date",
"level": {
"kind_node": {}
},
"state": {
"running": "true",
"more": {
"type": "engine"
}
}
}
}
}
}
到目前为止,我已经尝试使用 dict2items 但没有运气。目前,我得到一个空列表。
set_fact:
my_var: "{{ nodes | dict2items | json_query('[?value.state.more.type==`admin`]') }}"
基本上,这个任务应该设置 my_var ==> node1 因为它是管理员。非常感谢任何帮助。
【问题讨论】:
标签: json ansible ansible-2.x jmespath