Анализировать вывод json для определенного ключа в переменной Ansible

У меня есть конкретный вывод JSON, показанный ниже, с использованием фиктивных данных, загруженных внутри переменной в Ansible:

 "nodes": {
            "100.29.28.153": {
                "agent": "UP",
                "db": "UP",
                "info": " ",
                "type": "Master",
                "xlog": "6C\/2400A990",
                "xloginfo": ""
            },
            "100.29.28.154": {
                "agent": "UP",
                "db": "UP",
                "info": " ",
                "type": "Standby",
                "xlog": "6C\/2400A990",
                "xloginfo": ""
            },
            "100.29.28.155": {
                "agent": "UP",
                "db": "N\/A",
                "info": " ",
                "type": "Witness"
            },
            "100.29.28.163": {
                "agent": "UP",
                "db": "UP",
                "info": " ",
                "type": "Standby",
                "xlog": "6C\/2400A990",
                "xloginfo": ""
            },
            "100.29.28.165": {
                "agent": "UP",
                "db": "N\/A",
                "info": " ",
                "type": "Witness"
            }
        }

Как мне проанализировать это в Ansible и зарегистрировать новую переменную, используя type = Master в качестве средства выбора IP-адреса этого узла? В приведенном выше примере для новой переменной Ansible должно быть установлено значение "100.29.28.153", поскольку этот IP-адрес является главным узлом.

Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
1
0
341
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Например, объединив фильтр dict2items с JMESPath:

- set_fact:
    my_var: "{{ nodes | dict2items | json_query('[?value.type==`Master`] | [0].key') }}"

Другие вопросы по теме