eos_command - Выполнение произвольных команд на устройстве Arista EOS
Новое в версии 2.1.
Описание
- Отправляет произвольный набор команд узлу EOS и возвращает результаты, считанные с устройства. Этот модуль включает аргумент, который заставит модуль ожидать выполнения определенного условия перед возвратом или вызовет таймаут, если условие не будет выполнено.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| auth_pass | Значение по умолчанию: нет | Устарело Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli и become: yes с become_pass. Этот параметр необходим только при использовании eAPI. Дополнительную информацию см. в руководстве EOS Platform Options. Указывает пароль, используемый для входа в привилегированный режим на удалённом устройстве. Если authorize имеет значение false, этот аргумент ничего не делает. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTH_PASS. | |
| authorize |
| Устарело Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli и become: yes. Этот параметр необходим только при использовании eAPI. Дополнительную информацию см. в руководстве EOS Platform Options. Указывает модулю войти в привилегированный режим на удалённом устройстве перед отправкой команд. Если не указано, устройство попытается выполнить все команды в режиме без привилегий. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTHORIZE. | |
| commands обязательно | Команды, которые нужно отправить на удалённое устройство EOS через настроенный поставщик. Результирующий вывод команды возвращается. Если указан аргумент wait_for, модуль не возвращается до тех пор, пока условие не будет удовлетворено или не будет превышено количество retries. | ||
| interval | Значение по умолчанию: 1 | Настраивает интервал в секундах ожидания между попытками повторного выполнения команды. Если команда не удовлетворяет заданному условию, интервал определяет время ожидания перед новой попыткой выполнения команды. | |
| match (добавлено в 2.2) |
| Аргумент match используется совместно с аргументом wait_for для задания политики сопоставления. Допустимые значения — all или any. Если значение установлено в all, должны быть удовлетворены все условия в wait_for. Если значение установлено в any, должно быть удовлетворено только одно из условий. | |
| provider | Значение по умолчанию: None | Устарело Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli. Этот параметр необходим только при использовании eAPI. Дополнительную информацию см. в руководстве EOS Platform Options. Объект словаря, содержащий детали подключения. | |
| username | Настраивает имя пользователя для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации входа в командную строку или аутентификации eAPI в зависимости от используемого транспорта. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_USERNAME. | ||
| authorize |
| Указывает модулю войти в привилегированный режим на удалённом устройстве перед отправкой команд. Если не указано, устройство попытается выполнить все команды в режиме без привилегий. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTHORIZE. | |
| ssh_keyfile | Указывает файл ключа SSH для аутентификации подключения к удалённому устройству. Этот аргумент используется только для транспортов cli. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_SSH_KEYFILE. | ||
| use_proxy (добавлено в 2.5) |
| Если no, переменные среды http_proxy и https_proxy будут проигнорированы. | |
| auth_pass | Значение по умолчанию: нет | Указывает пароль, используемый для входа в привилегированный режим на удалённом устройстве. Если authorize имеет значение false, этот аргумент ничего не делает. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTH_PASS. | |
| host обязательно | Указывает имя хоста DNS или адрес для подключения к удалённому устройству через указанный транспорт. Значение параметра host используется в качестве адреса назначения для транспорта. | ||
| timeout | Значение по умолчанию: 10 | Указывает таймаут в секундах для связи с сетевым устройством для подключения или отправки команд. Если таймаут превышен до завершения операции, модуль выдаст ошибку. | |
| use_ssl |
| Настраивает транспорт transport на использование SSL, если значение равно true, только когда transport=eapi. Если аргумент transport не равен eapi, это значение игнорируется. | |
| password | Значение по умолчанию: None | Указывает пароль для аутентификации подключения к удалённому устройству. Это общий аргумент, используемый для транспортов cli или eapi. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_PASSWORD. | |
| validate_certs |
| Если no, сертификаты SSL не будут проверены. Это следует использовать только на сайтах с личным контролем, использующих самозаверяемые сертификаты. Если аргумент transport не равен eapi, это значение игнорируется. | |
| port | Значение по умолчанию: 0 (использовать общий порт) | Указывает порт для построения подключения к удалённому устройству. Это значение применимо к cli или eapi. Значение порта по умолчанию будет соответствовать общему порту соответствующего транспорта, если в задаче ничего не указано. (cli=22, http=80, https=443). | |
| transport обязательно |
| Настраивает транспортное подключение, используемое при подключении к удалённому устройству. | |
| retries | Значение по умолчанию: 10 | Указывает количество попыток выполнения команды до того, как она будет считаться неудачной. Команда выполняется на целевом устройстве при каждой попытке и оценивается по условиям wait_for. | |
| wait_for (добавлено в 2.2) | Значение по умолчанию: None | Указывает, что следует оценивать из вывода команды и какие условия применять. Этот аргумент заставит задачу ждать, пока конкретное условие не станет истинным, прежде чем продолжать. Если условие не станет истинным до превышения заданного количества попыток, задача завершится ошибкой. Примечание - при wait_for значение в result['stdout'] может быть получено с помощью result, т. е. чтобы получить result['stdout'][0], используйте result[0]. См. примеры.псевдонимы: waitfor | |
Примечания
Примечание
- Проверено на EOS 4.15
- Информация об использовании командной строки, eAPI и привилегированного режима см. в руководстве EOS Platform Options
- Дополнительную информацию об использовании Ansible для управления сетевыми устройствами см. в руководстве Ansible Network Guide
- Дополнительную информацию об использовании Ansible для управления устройствами Arista EOS см. на странице интеграции Arista Arista integration.
Примеры
- 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 список | failed | Список условных выражений, которые завершились неудачей Пример: ['...', '...'] |
| stdout список | всегда, кроме ошибок низкого уровня (таких как плагин действия) | Набор ответов от команд Пример: ['...', '...'] |
| stdout_lines список | всегда, кроме ошибок низкого уровня (таких как плагин действия) | Значение stdout, разделенное на список Пример: [['...', '...'], ['...'], ['...']] |
Статус
Этот модуль помечен как превью, что означает, что его интерфейс не гарантируется обратной совместимости.
Поддержка
Для получения дополнительной информации о поддержке данного модуля 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.5/modules/eos_command_module.html