vyos_command - Запуск одной или нескольких команд на устройствах VyOS
Новая версия 2.2.
Обзор
- Модуль команды позволяет запускать одну или несколько команд на удаленных устройствах, работающих под управлением VyOS. Этот модуль также можно использовать для проверки параметров перед успешным возвратом. Если условия не выполняются в течение заданного времени ожидания, задача завершается неудачно.
- Определенные
showкоманды в VyOS генерируют большое количество строк вывода и используют пользовательскую страницу вывода, что может привести к зависанию данного модуля. Если переменная средыANSIBLE_VYOS_TERMINAL_LENGTHне задана, используется значение по умолчанию 10000.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| commands обязательно | Упорядоченный набор команд для выполнения на удаленном устройстве, работающем под управлением VyOS. Вывод выполнения команды возвращается в playbook. Если указан аргумент wait_for, модуль не возвращает результат, пока условие не выполнится или не будет превышено количество попыток. | ||
| interval | Значение по умолчанию: 1 | Настраивает интервал в секундах ожидания между повторными попытками выполнения команды. Если команда не удовлетворяет указанным условиям, интервал указывает время ожидания перед повторной попыткой выполнения команды. | |
| match |
| Аргумент match используется совместно с аргументом wait_for для определения политики соответствия. Допустимые значения — all или any. Если значение установлено в all, то должны выполняться все условия в wait_for. Если значение установлено в any, то должно выполняться хотя бы одно из условий. | |
| provider | Устаревший Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli. Для получения дополнительной информации см. Руководство по сети. Объект типа dict, содержащий данные подключения. | ||
| host обязательно | Указывает имя хоста DNS или адрес для подключения к удаленному устройству по указанному транспорту. Значение host используется в качестве адреса назначения для транспорта. | ||
| port | Значение по умолчанию: 22 | Указывает порт для подключения к удаленному устройству. | |
| username | Указывает имя пользователя для аутентификации подключения к удаленному устройству. Это значение используется для аутентификации сессии SSH. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_USERNAME. | ||
| password | Указывает пароль для аутентификации подключения к удаленному устройству. Это значение используется для аутентификации сессии SSH. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_PASSWORD. | ||
| timeout | Значение по умолчанию: 10 | Указывает таймаут в секундах для связи с сетевым устройством при подключении или отправке команд. Если таймаут истекает до завершения операции, модуль выдаст ошибку. | |
| ssh_keyfile | Указывает SSH-ключ для аутентификации подключения к удаленному устройству. Это значение — путь к ключу, используемому для аутентификации сессии SSH. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_SSH_KEYFILE. | ||
| retries | Значение по умолчанию: 10 | Указывает количество попыток выполнения команды, после чего она считается неудачной. Команда выполняется на целевом устройстве при каждой повторной попытке и оценивается по условиям wait_for. | |
| wait_for | Указывает, что следует оценивать из вывода команды и какие условия применять. Этот аргумент заставит задачу ожидать выполнения определенного условия, прежде чем продолжить. Если условие не выполняется в течение заданного количества 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 список | всегда | Список предупреждений (если есть), сгенерированных модулем на основе аргументов Пример: ['...', '...'] |
Статус
Этот модуль помечен как превью, что означает, что его интерфейс не гарантируется как обратная совместимость.
Техническое обслуживание
Этот модуль помечен как сетевой, что означает, что его поддерживает Ansible Network Team. Подробности см. в Техническом обслуживании модулей и поддержке.
Список других модулей, также поддерживаемых Ansible Network Team, см. в здесь.
Поддержка
Дополнительную информацию о поддержке этого модуля компанией 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.6/modules/vyos_command_module.html