eos_command - Выполнение произвольных команд на устройстве Arista EOS
Новое в версии 2.1.
Описание
- Отправляет произвольный набор команд узлу EOS и возвращает результаты, считанные с устройства. Этот модуль включает аргумент, который заставит модуль ожидать выполнения определенного условия перед возвратом или таймаутом, если условие не выполняется.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| auth_pass | Устарело Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli и become: yes с become_pass. Этот параметр требуется только при использовании eAPI. Дополнительную информацию см. в руководстве EOS Platform Options. Указывает пароль для входа в привилегированный режим на удаленном устройстве. Если authorize ложно, этот аргумент не имеет эффекта. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTH_PASS. | ||
| authorize bool |
| Устарело Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli и become: yes.Этот параметр требуется только при использовании eAPI. Дополнительную информацию см. в руководстве EOS Platform Options. Инструктирует модуль войти в привилегированный режим на удаленном устройстве перед отправкой любых команд. Если не указано, устройство попытается выполнить все команды в режиме без привилегий. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTHORIZE. | |
| commands требуется | Команды для отправки на удаленное устройство EOS через настроенного поставщика. Результирующий вывод команды возвращается. Если указан аргумент wait_for, модуль не возвращается до тех пор, пока условие не будет выполнено или не будет превышено количество повторных попыток. | ||
| interval | Значение по умолчанию: 1 | Настраивает интервал в секундах ожидания между повторными попытками выполнения команды. Если команда не удовлетворяет указанному условию, интервал определяет, сколько времени ждать, прежде чем повторить попытку. | |
| match (добавлен в 2.2) |
| Аргумент match используется в сочетании с аргументом wait_for для указания политики сопоставления. Допустимые значения — all или any. Если значение установлено в all, все условия в wait_for должны быть выполнены. Если значение установлено в any, достаточно выполнения только одного условия. | |
| provider | Устарело Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli.Этот параметр требуется только при использовании eAPI. Дополнительную информацию см. в руководстве EOS Platform Options. Объект словаря, содержащий данные подключения. | ||
| host требуется | Указывает имя хоста DNS или адрес для подключения к удаленному устройству через указанный транспорт. Значение host используется в качестве адреса назначения для транспорта. | ||
| port | Значение по умолчанию: "0 (использовать общий порт)" | Указывает порт для создания подключения к удаленному устройству. Это значение применимо к cli или eapi. Значение порта по умолчанию будет соответствовать общему порту соответствующего транспорта, если он не указан в задаче (cli=22, http=80, https=443). | |
| username | Настраивает имя пользователя для аутентификации подключения к удаленному устройству. Это значение используется для аутентификации входа в CLI или аутентификации eAPI в зависимости от используемого транспорта. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_USERNAME. | ||
| password | Указывает пароль для аутентификации подключения к удаленному устройству. Это общий аргумент, используемый для транспортов cli или eapi. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_PASSWORD. | ||
| timeout | Значение по умолчанию: 10 | Указывает таймаут в секундах для связи с сетевым устройством при подключении или отправке команд. Если таймаут превышен до завершения операции, модуль выдаст ошибку. | |
| ssh_keyfile | Указывает SSH-ключевой файл для аутентификации подключения к удаленному устройству. Этот аргумент используется только для транспортов cli. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_SSH_KEYFILE. | ||
| authorize bool |
| Инструктирует модуль войти в привилегированный режим на удаленном устройстве перед отправкой любых команд. Если не указано, устройство попытается выполнить все команды в режиме без привилегий. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTHORIZE. | |
| auth_pass | Указывает пароль для входа в привилегированный режим на удаленном устройстве. Если authorize ложно, этот аргумент не имеет эффекта. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTH_PASS. | ||
| transport требуется |
| Настраивает транспортное соединение для подключения к удаленному устройству. | |
| use_ssl bool |
| Настраивает transport для использования SSL, если значение равно true, только когда transport=eapi. Если аргумент transport не eapi, это значение игнорируется. | |
| validate_certs bool |
| Если no, сертификаты SSL не будут проверяться. Это следует использовать только на управляемых лично сайтах с самозаверяющими сертификатами. Если аргумент transport не eapi, это значение игнорируется. | |
| use_proxy bool (добавлен в 2.5) |
| Если no, переменные среды http_proxy и https_proxy будут игнорироваться. | |
| retries | Значение по умолчанию: 10 | Указывает количество повторных попыток выполнения команды, прежде чем она считается неудачной. Команда выполняется на целевом устройстве при каждой повторной попытке и оценивается по условиям wait_for. | |
| wait_for (добавлен в 2.2) | Указывает, что следует оценивать из вывода команды и какие условия применять. Этот аргумент заставит задачу подождать, пока определенное условие не станет истинным, прежде чем продолжить. Если условие не станет истинным до истечения установленного количества повторных попыток, задача завершится ошибкой. Примечание — с wait_for значение в result['stdout'] можно получить с помощью result, то есть для доступа к result['stdout'][0] используйте result[0]. См. примеры.псевдонимы: waitfor | ||
Примечания
Примечание
- Проверено на EOS 4.15
- Сведения об использовании CLI, eAPI и привилегированного режима см. в руководстве EOS Platform Options
- Дополнительную информацию об использовании Ansible для управления сетевыми устройствами см. в руководстве Ansible Network Guide
- Дополнительную информацию об использовании Ansible для управления устройствами Arista EOS см. на странице интеграции Arista.
Примеры
- name: run show version on remote devices
eos_command:
commands: show version
- name: run show version and check to see if output contains Arista
eos_command:
commands: show version
wait_for: result[0] contains Arista
- name: run multiple commands on remote nodes
eos_command:
commands:
- show version
- show interfaces
- name: run multiple commands and evaluate the output
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
eos_command:
commands:
- command: show version
output: json
- name: using cli transport, check whether the switch is in maintenance mode
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
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"
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, разделенное на список Пример: [['...', '...'], ['...'], ['...']] |
Статус
Этот модуль помечен как превью, что означает, что он не гарантирует обратную совместимость.
Техническое обслуживание
Этот модуль помечен как сетевой, что означает, что его поддерживает команда Ansible по сетевым технологиям. Дополнительная информация приведена в разделе Техническое обслуживание и поддержка модулей.
Список других модулей, поддерживаемых командой Ansible по сетевым технологиям, см. здесь.
Поддержка
Дополнительную информацию о поддержке этого модуля компанией Red Hat см. в этой статье базы знаний
Автор
- 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.6/modules/eos_command_module.html