如何在 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_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"
}
}
]
}
]
}
下面的查询
- 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}') }}"
我正在使用 ec2_lc_facts ansible 模块并将输出注册到一个名为 lc_facts 的变量中。我可以使用 json 查询 "{{ lc_facts.launch_configurations|json_query(' [*].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"
}
}
]
}
]
}
下面的查询
- 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}') }}"