Как получить конкретную строку из вывода вложенного регистра Ansible - PullRequest
0 голосов
/ 23 мая 2019

Итак, я пытаюсь получить конкретную строку / строку из выходных данных регистра Ansible. Но так как мой вывод тихий, я не могу получить правильное значение, которое хочу.

Playbook выглядит следующим образом,

---
- name: Get some piece of information
  *some Ansible module*:
    epg_info: First_EPG 
    state: query
  register: epg_info

- debug:
    var: epg_info
...

Итак, вы видите, что я использую сетевой модуль, предоставленный Ansible, для запроса информации «First_EPG» и регистрации ее в epg_info. Затем я отлаживаю его, и вот строки, которые я получаю,

ok: [... . ... . ... . ...] => {
    "epg_info": {
        "changed": false,
        "msg": "All items completed",
        "results": [
            {
                "_ansible_ignore_errors": null,
                "changed": false,
                "current": [
                    {
                        "fvAEPg": {
                            "attributes": {
                                "annotation": "",
                                "dn": "THIS IS THE LINE I WANT TO HAVE",
                                "exceptionTag": "",
                                "extMngdBy": "",
                            },
                    }
                  } 
                } 
              } 
            } 

Не берите в голову число "{}", потому что список намного длиннее, я просто сузил его для простоты использования.

Как вы можете видеть, список тихо вложен, и единственная строка, которую я хочу получить, это строка "dn" и сохранить это значение в другом списке.

Есть идеи, как я могу получить только эту строку?

1 Ответ

0 голосов
/ 23 мая 2019

Вы можете использовать индексирование, чтобы получить это значение:

    - name: fetch value
      debug:
        msg: "{{ epg_info['results'][0]['current'][0]['fvAEPg']['attributes']['dn'] }}"
...