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 строка |
| Настраивает транспортное соединение для подключения к удалённому устройству. | |
| 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