我需要从ansible play中获取json中key的值。问题是 - 不确定密钥是否在Json的特定级别。它可能从json到json不等。所以,我需要’搜索’…
你可以得到所有的清单 remedy 使用JMESPath查询: errors[].errorList[].remedy[].remedy 。
remedy
errors[].errorList[].remedy[].remedy
[ "Configure all machines to have same bynet configuration", "Bring ClientHandler up on **********", "Re-submit the job" ]
在Ansible中你会使用 json_query 过滤以应用JMESPath查询。
json_query
如果你还需要操作码: errors[].errorList[].remedy[].{r:remedy,o:remedyOpcode}
errors[].errorList[].remedy[].{r:remedy,o:remedyOpcode}
[ { "r": "Configure all machines to have same bynet configuration", "o": "RECONFIGURE_BYNET" }, { "r": "Bring ClientHandler up on **********", "o": "RESTART_SERVICE" }, { "r": "Re-submit the job", "o": "RESUBMIT" }, { "r": null, "o": null } ]
例:
- debug: msg: "{{ migration_detail_status | json_query('errors[].errorList[].remedy[].remedy') }}"