要使用Ansible的json_query选择嵌套值,可以按照以下步骤操作:
确保已安装jmespath
库(Ansible 2.10版本以上默认安装了该库)。
创建一个Ansible playbook文件(比如json_query_example.yaml
),并添加以下内容:
---
- name: Example playbook
hosts: localhost
gather_facts: false
tasks:
- name: Parse JSON data
set_fact:
nested_value: "{{ my_json_data | json_query(my_query) }}"
vars:
my_query: "nested_property.sub_property[0].value"
my_json_data:
nested_property:
sub_property:
- { value: "Value 1" }
- { value: "Value 2" }
- { value: "Value 3" }
- name: Print nested value
debug:
var: nested_value
在上面的示例中,我们使用set_fact
模块将通过json_query
过滤的值存储在变量nested_value
中。my_query
变量定义了我们要选择的嵌套值的查询路径。my_json_data
变量包含要解析的JSON数据。
ansible-playbook json_query_example.yaml
输出将显示选择的嵌套值:
TASK [Print nested value] *******************************************************************************************
ok: [localhost] => {
"nested_value": "Value 1"
}
这是一个简单的示例,你可以根据实际需求修改my_query
和my_json_data
变量以适应你的JSON数据结构和查询路径。