Spec-Zone.ru › Ansible 2.8

Работа с выводом команд в модулях сети

Условные операторы в модулях сети

Ansible позволяет использовать условные операторы для управления потоком ваших playbooks. Модули команд Ansible для сети используют следующие уникальные условные операторы.

  • eq - Равно
  • neq - Не равно
  • gt - Больше
  • ge - Больше или равно
  • lt - Меньше
  • le - Меньше или равно
  • contains - Объект содержит указанный элемент

Условные операторы оценивают результаты команд, выполняемых удаленно на устройстве. После выполнения набора команд задача использует аргумент wait_for для оценки результатов перед возвратом управления playbook Ansible.

Например:

%%%NON_TRANSLABLE_8%%%

В примере задачи команда show interface Ethernet4 | json выполняется на удалённом устройстве, и результаты оцениваются. Если путь (result[0].interfaces.Ethernet4.interfaceStatus) не равен “connected”, то команда повторяется. Этот процесс продолжается, пока условие не будет выполнено или не истечёт количество попыток (по умолчанию 10 попыток с интервалом в 1 секунду).

Модуль команд также может оценивать более одного набора результатов команд в интерфейсе. Например:

---
- name: wait for interfaces to be admin enabled
  eos_command:
      commands:
          - show interface Ethernet4 | json
          - show interface Ethernet5 | json
      wait_for:
          - "result[0].interfaces.Ethernet4.interfaceStatus eq connected"
          - "result[1].interfaces.Ethernet5.interfaceStatus eq connected"

В приведённом примере две команды выполняются на удалённом устройстве, и результаты оцениваются. Указав значение индекса результата (0 или 1), проверяется правильный выходной результат по условию.

Аргумент wait_for всегда должен начинаться с result, а затем с индексом команды в [], где 0 — первая команда в списке команд, 1 — вторая, 2 — третья и так далее.

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/network/user_guide/network_working_with_command_output.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API