Как написать l oop in ansible с дополнительной переменной - PullRequest
0 голосов
/ 08 мая 2020

У меня есть список адресов ma c в текстовом файле mac.txt, например:

[
  "08f1.ea6d.033c",
  "08f1.ea6d.033d",
  "08f1.ea6d.033e",
  "08f1.ea6d.033f",
  "b883.0381.4b.20",
  "b883.0381.4b21",
  "b883.0384.d51c",
  "b883.0384.d51d"
]

Теперь я хочу проверить один за другим адреса ma c в переключателе, для проверки возможности подключения сервера и коммутатора, и все эти ma c адреса могут отсутствовать на коммутаторе. Допустим, существует только два, и что ma c необходимо сохранить в переменной.

Примечание: эти адреса ma c могут отличаться.

А вот и сценарий переключения, которым я был написание:

- name: Run the show lldp neighbors command & find out the switch port
  ios_command:
    commands: show mac address-table | in {{ macdress }}
  with_item:
    - macaddress

Какая правильная инструкция для выполнения требования?

1 Ответ

2 голосов
/ 08 мая 2020

Поскольку ваш текстовый файл является допустимым списком json, вам просто нужно прочитать его содержимое, используя file поиск , и загрузить его в переменную, используя from_json фильтр . Затем вы можете использовать переменную (в al oop или что-нибудь еще).

---
- name: Load values from json file demo
  hosts: localhost
  gather_facts: false

  vars:
    macaddresses: "{{ lookup('file', 'mac.txt') | from_json }}"

  tasks:
    - name: Show imported macs list
      debug:
        var: macaddresses

    - name: Loop over imported macs
      debug:
        msg: "I'm looping over mac {{ item }}"
      loop: "{{ macaddresses }}"

Примечание : loop - это недавний синтаксис для цикла и эквивалент with_list. В этой ситуации вы можете отлично заменить его на with_list или with_item, которые не являются устаревшими и будут выполнять ту же работу. См. Документацию ansible l oop для получения дополнительной информации.

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