Spec-Zone.ru › Ansible 2.10

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

Примечание

Этот плагин входит в коллекцию arista.eos (версия 1.2.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 Platform Options.
Объект словаря, содержащий данные подключения.
auth_pass
строка
Указывает пароль для входа в привилегированный режим на удаленном устройстве, если это необходимо. Если authorize равно false, этот аргумент не влияет. Если значение не указано в задаче, используется значение переменной окружения ANSIBLE_NET_AUTH_PASS.
authorize
логическое значение
    Варианты:
  • нет ←
  • да
Указывает модулю войти в привилегированный режим на удаленном устройстве перед отправкой каких-либо команд. Если не указано, устройство попытается выполнить все команды в режиме без привилегий. Если значение не указано в задаче, используется значение переменной окружения ANSIBLE_NET_AUTHORIZE.
host
строка
Указывает имя хоста DNS или адрес для подключения к удаленному устройству через указанный транспорт. Значение хоста используется в качестве адреса назначения для транспорта.
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.

Примеры

- 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, разделенное на список

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


Авторы

  • Peter Sprygada (@privateip)

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

Spec-Zone.ru

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