如何在 Ansible 中 Json 查询

How to Json query in Ansible

我正在使用 ec2_lc_facts ansible 模块并将输出注册到一个名为 lc_facts 的变量中。我可以使用 json 查询 "{{ lc_facts.launch_configurations|json_query(' [*].block_device_mappings') }}"" 但想抓住 volume_sizevolume_type 来自以下输出。请帮忙。

 "lc_facts": {
        "changed": false, 
        "failed": false, 
        "launch_configurations": [
            {
                "block_device_mappings": [
                    {
                        "device_name": "/dev/sda1", 
                        "ebs": {
                            "delete_on_termination": true, 
                            "volume_size": 40, 
                            "volume_type": "gp2"
                        }
                    }
                ]
            }
       ]
  }

下面的查询

- debug:
    msg: "{{ lc_facts.launch_configurations|json_query('[*].block_device_mappings[0].ebs.[volume_size, volume_type]') }}"

给予

    "msg": [
    [
        40, 
        "gp2"
    ]
]

要获取哈希,请使用这个

- debug:                                                                                                                          
    msg: "{{ lc_facts.launch_configurations|json_query('[*].block_device_mappings[0].ebs.{size: volume_size, type: volume_type}') }}"