问题描述
我有一个Ansible任务,该任务根据特定条件收集用户数据并将其注册到变量中,并尝试在下一个任务中迭代注册的数据以仅获取name参数。
{
"registered_data": {
"changed": false,"msg": "All items completed","results": [
{
"ansible_loop_var": "item","changed": false,"Failed": false,"data_details": [
{
"name": "John","street": "SanFisco"
},{
"name": "Dan","street": "Califor"
},{
"name": "Jack","street": "NY"
},{
"name": "Wills","street": "NJ"
}
],"invocation": {
"module_args": {
"sort_by": null,"sort_order": null
}
},"item": {
"status": "READY"
}
},{
"ansible_loop_var": "item","data_details": [],"sort_order": null
}
},"item": {
"status": "READY"
}
}
]
}
}
我正尝试使用下面的ansible任务来解析和过滤不返回任何输出的数据。
- name: 'printing data'
delegate_to: 'localhost'
when: item
loop: "{{ registered_data |json_query(projection_query) }}"
debug:
msg: "{{ item }}"
vars:
projection_query: "results.[*].name"
解决方法
下面的任务
- debug:
msg: "{{ registered_data.results|json_query(query) }}"
vars:
query: "[].data_details[].name"
给予
msg:
- John
- Dan
- Jack
- Wills