我正在使用 ec2_lc_facts ansible模块,并将输出注册到名为 lc_facts 的变量中。我可以使用json查询“ {{lc_facts.launch_configurations | json_query('[*]。block_device_mappings')}}” 来获取 block_device_mappings 值,但想获取来自以下输出的 volume_size 和 volume_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"
}
}
]
}
]
}
答案 0 :(得分:1)
下面的查询
- 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}') }}"