L oop через список в ansible два значения извлечения - PullRequest
1 голос
/ 15 января 2020

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

"response": [
        {
            "address": "5555.6666.7777.8888", 
            "age": "0", 
            "interface": "Vlan4050, Ethernet23", 
            "mac": "324c.23d7.7235"
        }, 
        {
            "address": "111.222.333.444", 
            "age": "0", 
            "interface": "Vlan4051, Ethernet24", 
            "mac": "63g.aed6.892d"
        }
    ]

Я создаю факт, чтобы получить адреса от каждого объекта

- name: set list of addresses
  set_fact:
    address: "{{ arp_arista.response | map(attribute='address') | list }}"

Затем я хочу отладить сообщение с каждым адресом

- name: debug test
  debug: 
    msg: "This is the IP: {{ item }}"
  loop:
    - "{{ address }}"

Я ожидал, что это выведет

This is the IP: 5555.6666.7777.8888
This is the IP: 111.222.333.444

Но вместо этого он выдаст

This is the IP: [u'5555.6666.7777.8888', u'111.222.333.444']

Есть ли способ l oop и распечатать каждый адрес отдельно для использования?

1 Ответ

1 голос
/ 15 января 2020

Q: "Есть ли способ l oop и распечатать каждый адрес отдельно для использования?"

A: Да. Перебрать элементы в списке address

  loop: "{{ address }}"


Объяснение проблемы

l oop в вопросе повторяет явный список одного элемента, который является списком address сама

  loop:
    - "{{ address }}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...