如何在Ansib中进行Json查询

2024-09-28 11:41:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用ec2\u lc\u factsansible模块,并将输出注册到名为lc\u facts的变量。我能够使用json查询{lc}获取块设备映射值_facts.u配置|json_query('[*].block_device_mappings')}“但是想从下面的输出中获取卷大小和卷类型。请帮忙。你知道吗

 "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"
                        }
                    }
                ]
            }
       ]
  }

Tags: 模块jsonfalse类型deviceec2queryblock
1条回答
网友
1楼 · 发布于 2024-09-28 11:41:21

下面的查询

- 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}') }}" 

相关问题 更多 >

    热门问题