vyos_command - Запуск одной или нескольких команд на устройствах VyOS
Новое в версии 2.2.
Описание
- Модуль команд позволяет запускать одну или несколько команд на удаленных устройствах, работающих под управлением VyOS. Этот модуль также может быть исследован для проверки ключевых параметров перед успешным возвратом. Если условные операторы не выполняются в период ожидания, задача завершается неудачей.
- Некоторые
showкоманды в VyOS производят много строк вывода и используют пользовательский просмотрщик страниц, что может привести к зависанию этого модуля. Если переменная средыANSIBLE_VYOS_TERMINAL_LENGTHне задана, используется значение по умолчанию 10000.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| commands обязательно | Упорядоченный набор команд для выполнения на удалённом устройстве с VyOS. Вывод выполнения команды возвращается в план. Если параметр wait_for задан, модуль не возвращается до тех пор, пока условие не будет выполнено или количество попыток не будет превышено. | ||
| interval | По умолчанию: 1 | Настраивает интервал в секундах ожидания между повторами retries команды. Если команда не удовлетворяет заданным условиям, интервал определяет, сколько времени подождать, прежде чем повторить её. | |
| match |
| Параметр match используется совместно с параметром wait_for для указания политики соответствия. Допустимые значения — all или any. Если значение установлено в all, то все условные операторы в wait_for должны быть выполнены. Если значение установлено в any, то достаточно выполнения хотя бы одного из них. | |
| provider | По умолчанию: None | Устарело Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli.Для получения дополнительной информации, обратитесь к руководству по сети Сеть. Объект словаря, содержащий данные подключения. | |
| username | Настраивает имя пользователя для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации SSH-сессии. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_USERNAME. | ||
| host обязательно | Указывает имя хоста DNS или адрес для подключения к удалённому устройству по указанному транспорту. Значение параметра host используется в качестве адреса назначения для транспорта. | ||
| ssh_keyfile | Указывает SSH-ключ для аутентификации подключения к удалённому устройству. Это путь к ключу, используемому для аутентификации SSH-сессии. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_SSH_KEYFILE. | ||
| timeout | По умолчанию: 10 | Устанавливает таймаут в секундах для связи с сетевым устройством при подключении или отправке команд. Если таймаут истекает до завершения операции, модуль выдаст ошибку. | |
| password | По умолчанию: None | Указывает пароль для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации SSH-сессии. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_PASSWORD. | |
| port | По умолчанию: 22 | Указывает порт для подключения к удалённому устройству. | |
| retries | По умолчанию: 10 | Указывает количество попыток выполнения команды перед её признанием неудачной. Команда выполняется на целевом устройстве при каждой попытке и оценивается по условиям wait_for. | |
| wait_for | По умолчанию: None | Указывает, что оценивать из вывода команды и какие условия применять. Этот параметр заставит задачу ожидать выполнения определённого условия, прежде чем переходить к дальнейшим действиям. Если условие не выполняется к заданному количеству retries, задача завершается неудачей. Смотрите примеры. алиасы: waitfor | |
Примечания
Примечание
- Тестировалось на VYOS 1.1.7
- Запуск
show system boot-messages allприведёт к зависанию модуля, так как VyOS использует пользовательский просмотрщик вывода для отображения результатов этой команды. - Если команда, отправленная устройству, требует ответа на запрос, можно передать словарь, содержащий command, answer и prompt. Смотрите примеры.
- Для получения дополнительной информации об использовании Ansible для управления сетевыми устройствами обратитесь к Руководству по сети Ansible
Примеры
tasks:
- name: show configuration on ethernet devices eth0 and eth1
vyos_command:
commands:
- show interfaces ethernet {{ item }}
with_items:
- eth0
- eth1
- name: run multiple commands and check if version output contains specific version string
vyos_command:
commands:
- show version
- show hardware cpu
wait_for:
- "result[0] contains 'VyOS 1.1.7'"
- name: run command that requires answering a prompt
vyos_command:
commands:
- command: 'rollback 1'
prompt: 'Proceed with reboot? [confirm][y]'
answer: y
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие — поля, уникальные для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| failed_conditions список | неудача | Список условных операторов, которые не были выполнены. Пример: ['...', '...'] |
| stdout список | всегда, кроме ошибок низкого уровня (например, плагин действия) | Набор ответов от команд. Пример: ['...', '...'] |
| stdout_lines список | всегда | Значение stdout, разбитое на список. Пример: [['...', '...'], ['...'], ['...']] |
| warnings список | всегда | Список предупреждений (если есть), сгенерированных модулем на основе аргументов. Пример: ['...', '...'] |
Статус
Этот модуль помечен как превью, что означает, что его интерфейс не гарантируется как обратной совместимости.
Поддержка
Дополнительную информацию о поддержке этого модуля компанией Red Hat см. в этой статье базы знаний.
Автор
- Nathaniel Case (@qalthos)
Подсказка
Если вы обнаружите какие-либо проблемы в этом документе, вы можете отредактировать его, чтобы улучшить его.
© 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/vyos_command_module.html