Как запросить Json в Ansible - PullRequest
       25

Как запросить Json в Ansible

0 голосов
/ 15 марта 2019

Я использую ec2_lc_facts ответный модуль и регистрирую вывод в переменной с именем lc_facts . Я могу получить значение block_device_mappings , используя запрос 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"
                        }
                    }
                ]
            }
       ]
  }

1 Ответ

1 голос
/ 15 марта 2019

Запрос ниже

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