Spec-Zone.ru › Ansible 2.11

arista.eos.eos_command – Выполнение произвольных команд на устройстве Arista EOS

Примечание

Этот плагин входит в коллекцию arista.eos (версия 1.3.0).

Для его установки используйте: ansible-galaxy collection install arista.eos.

Для использования в книге задач укажите: arista.eos.eos_command.

Новый в версии 1.0.0: модуля arista.eos

  • Описание
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Описание

  • Отправляет произвольный набор команд на узел EOS и возвращает результаты, считанные с устройства. Этот модуль включает аргумент, который заставит модуль ожидать определённого условия перед возвратом или таймаутом, если условие не выполняется.

Примечание

У этого модуля есть соответствующий плагин действий.

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
commands
список / элементы=сырой / обязательный
Команды, которые нужно отправить на удалённое устройство EOS через настроенного поставщика. Результирующий вывод команды возвращается. Если задан аргумент wait_for, модуль не возвращается до тех пор, пока условие не будет выполнено или количество повторных попыток не будет превышено.
Если команда, отправленная на устройство, требует ответа на запрос, можно передать словарь, содержащий команду, ответ и запрос. Общие ответы — 'y' или "\r" (возврат каретки, обязательно в двойных кавычках). См. примеры ниже.
interval
целое число
Значение по умолчанию:
1
Настраивает интервал в секундах, который нужно ожидать между повторными попытками выполнения команды. Если команда не удовлетворяет указанному условию, интервал определяет, как долго ждать перед следующей попыткой.
match
строка
    Варианты:
  • любое
  • все ←
Аргумент match используется совместно с аргументом wait_for для указания политики соответствия. Допустимые значения — all или any. Если значение установлено в all, все условия в wait_for должны быть выполнены. Если значение установлено в any, должно быть выполнено только одно из значений.
provider
словарь
Устарело
Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli.
Начиная с Ansible 2.6, рекомендуется использовать connection: httpapi для eAPI.
Этот параметр будет удалён в релизе после 2022-06-01.
Для получения дополнительной информации обратитесь к руководству по параметрам платформы EOS EOS Platform Options.
Объект словаря, содержащий детали подключения.
auth_pass
строка
Указывает пароль, который нужно использовать, если требуется переход в привилегированный режим на удалённом устройстве. Если authorize равно false, этот аргумент ничего не делает. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTH_PASS.
authorize
логическое значение
    Варианты:
  • нет ←
  • да
Указывает модулю войти в привилегированный режим на удалённом устройстве перед отправкой любых команд. Если не указано, устройство попытается выполнить все команды в обычном режиме. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTHORIZE.
host
строка
Указывает имя хоста DNS или адрес для подключения к удалённому устройству через указанный транспорт. Значение host используется в качестве адреса назначения для транспорта.
password
строка
Указывает пароль для проверки подлинности подключения к удалённому устройству. Это общий аргумент, используемый для транспортов cli или eapi. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_PASSWORD.
port
целое число
Значение по умолчанию:
0
Указывает порт, который нужно использовать при создании подключения к удалённому устройству. Это значение применяется к транспорту cli или eapi.
Значение порта будет по умолчанию соответствовать общепринятому порту транспорта, если оно не указано в задаче (cli=22, http=80, https=443).
ssh_keyfile
путь
Указывает файл ключа SSH для аутентификации подключения к удалённому устройству. Этот аргумент используется только для транспортов cli. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_SSH_KEYFILE.
timeout
целое число
Указывает таймаут в секундах для связи с сетевым устройством при подключении или отправке команд. Если таймаут превышен до завершения операции, модуль вернёт ошибку.
transport
строка
    Варианты:
  • cli ←
  • eapi
Настраивает транспортное соединение для подключения к удалённому устройству.
use_proxy
логическое значение
    Варианты:
  • нет
  • да ←
Если no, переменные среды http_proxy и https_proxy будут проигнорированы.
use_ssl
логическое значение
    Варианты:
  • нет
  • да ←
Настраивает transport для использования SSL, если установлено yes, только при transport=eapi. Если аргумент transport не eapi, это значение игнорируется.
username
строка
Настраивает имя пользователя для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации входа в CLI или проверки подлинности eAPI в зависимости от используемого транспорта. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_USERNAME.
validate_certs
логическое значение
    Варианты:
  • нет
  • да ←
Если no, сертификаты SSL не будут проверены. Это следует использовать только на сайтах, контролируемых лично, с самозаверяющимися сертификатами. Если аргумент transport не eapi, это значение игнорируется.
retries
целое число
Значение по умолчанию:
10
Указывает количество повторных попыток выполнения команды, прежде чем она будет считаться неудачной. Команда выполняется на целевом устройстве при каждой попытке и оценивается по условиям wait_for.
wait_for
список / элементы=строка
Указывает, что следует оценить по выводу команды и какие условия применить. Этот аргумент заставит задачу подождать, пока определённое условие не станет истинным, прежде чем продолжить. Если условие не выполняется к заданному количеству попыток, задача завершается неудачей. Примечание: при использовании wait_for значение result['stdout'] можно получить, используя result, т. е. для доступа к result['stdout'][0] используйте result[0]. См. примеры.

псевдонимы: waitfor

Примечания

Примечание

  • Проверено на EOS 4.15
  • Для информации об использовании CLI, eAPI и привилегированного режима обратитесь к руководству по параметрам платформы EOS
  • Для получения дополнительной информации об использовании Ansible для управления сетевыми устройствами см. руководство по Ansible для сети
  • Для получения дополнительной информации об использовании Ansible для управления устройствами Arista EOS см. страницу интеграции Arista Arista integration.

Примеры

- name: run show version on remote devices
  arista.eos.eos_command:
    commands: show version

- name: run show version and check to see if output contains Arista
  arista.eos.eos_command:
    commands: show version
    wait_for: result[0] contains Arista

- name: run multiple commands on remote nodes
  arista.eos.eos_command:
    commands:
    - show version
    - show interfaces

- name: run multiple commands and evaluate the output
  arista.eos.eos_command:
    commands:
    - show version
    - show interfaces
    wait_for:
    - result[0] contains Arista
    - result[1] contains Loopback0

- name: run commands and specify the output format
  arista.eos.eos_command:
    commands:
    - command: show version
      output: json

- name: using cli transport, check whether the switch is in maintenance mode
  arista.eos.eos_command:
    commands: show maintenance
    wait_for: result[0] contains 'Under Maintenance'

- name: using cli transport, check whether the switch is in maintenance mode using
    json output
  arista.eos.eos_command:
    commands: show maintenance | json
    wait_for: result[0].units.System.state eq 'underMaintenance'

- name: using eapi transport check whether the switch is in maintenance, with 8 retries
    and 2 second interval between retries
  arista.eos.eos_command:
    commands: show maintenance
    wait_for: result[0]['units']['System']['state'] eq 'underMaintenance'
    interval: 2
    retries: 8
    provider:
      transport: eapi

Возвращаемые значения

Общие возвращаемые значения описаны здесь, следующие — поля, уникальные для этого модуля:

Ключ Возвращаемое значение Описание
failed_conditions
список / элементы=строка
неудачно
Список условных выражений, которые завершились неудачей

Пример:
['...', '...']
stdout
список / элементы=строка
всегда, за исключением ошибок низкого уровня (таких как плагин действий)
Набор ответов от команд

Пример:
['...', '...']
stdout_lines
список / элементы=строка
всегда, за исключением ошибок низкого уровня (таких как плагин действий)
Значение stdout, разделенное на список

Пример:
[['...', '...'], ['...'], ['...']]


Авторы

  • Питер Спригада (@privateip)

© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/arista/eos/eos_command_module.html

Spec-Zone.ru

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