junos_command — Выполнение произвольных команд на устройстве Juniper JUNOS
Новая версия 2.1.
Описание
- Отправляет произвольный набор команд на узел JUNOS и возвращает результаты, считанные с устройства. В данном модуле есть аргумент, который заставит модуль подождать определённого условия перед возвратом или истечёт время ожидания, если условие не будет выполнено.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- jxmlease
- ncclient (>=v0.5.2)
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| commands | Команды, которые нужно отправить на удалённое устройство junos через настроенный провайдер. Результирующий вывод команды возвращается. Если задан аргумент wait_for, модуль не возвращается, пока условие не будет выполнено или не будет превышено число retries. | ||
| display (добавлено в 2.3) |
"зависит от входного аргумента I(rpcs) или I(commands)" | Схема кодирования для сериализации вывода с устройства. Это обрабатывает, как правильно понимать вывод и применять условные пути к набору результатов. Для аргумента rpcs значение по умолчанию для display равно xml, а для аргумента commands — text. Значение set применимо только для извлечения конфигурации с устройства.псевдонимы: format, output | |
| interval | Значение по умолчанию: 1 | Настраивает интервал в секундах ожидания между повторами команды. Если команда не удовлетворяет указанному условию, интервал определяет, как долго ждать перед повторной попыткой выполнения команды. | |
| match (добавлено в 2.2) |
| Аргумент match используется совместно с аргументом wait_for для указания политики сопоставления. Допустимые значения — all или any. Если значение установлено в all, все условия в wait_for должны быть выполнены. Если значение установлено в any, должно быть выполнено только одно из условий. | |
| provider | Устарело Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli или connection: netconf. Для получения дополнительной информации см. руководство Junos OS Platform Options. Объект словаря, содержащий данные подключения. | ||
| host обязательно | Указывает имя хоста DNS или адрес для подключения к удалённому устройству через указанный транспорт. Значение host используется в качестве адреса назначения для транспорта. | ||
| port | Значение по умолчанию: 22 | Указывает порт, используемый при построении соединения с удалённым устройством. Значение порта по умолчанию равно общеизвестному порту SSH 22 (для transport=cli) или порту 830 (для transport=netconf) устройства. | |
| username | Настраивает имя пользователя для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации сеанса SSH. Если значение не указано в задаче, вместо него используется значение переменной среды ANSIBLE_NET_USERNAME. | ||
| password | Указывает пароль для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации сеанса SSH. Если значение не указано в задаче, вместо него используется значение переменной среды ANSIBLE_NET_PASSWORD. | ||
| timeout | Значение по умолчанию: 10 | Указывает время ожидания в секундах для связи с сетевым устройством для подключения или отправки команд. Если время ожидания превышено до завершения операции, модуль выдаст ошибку. | |
| ssh_keyfile | Указывает SSH-ключ для аутентификации подключения к удалённому устройству. Это значение — путь к ключу, используемому для аутентификации сеанса SSH. Если значение не указано в задаче, вместо него используется значение переменной среды ANSIBLE_NET_SSH_KEYFILE. | ||
| retries | Значение по умолчанию: 10 | Указывает количество попыток выполнения команды до того, как она будет считана неудачной. Команда выполняется на целевом устройстве при каждой попытке и оценивается по условиям wait_for. | |
| rpcs (добавлено в 2.3) | Аргумент rpcs принимает список RPC, которые необходимо выполнить через сеанс netconf, а результаты выполнения RPC возвращаются в словарь результатов модуля в конвейер. | ||
| wait_for (добавлено в 2.2) | Указывает, что следует оценивать по результатам выполнения команды и какие условные проверки применять. Этот аргумент заставит задачу подождать, пока конкретное условие не станет истинным, прежде чем переходить дальше. Если условие не станет истинным к установленному количеству попыток, задача завершится с ошибкой. См. примеры. псевдонимы: waitfor | ||
Примечания
Примечание
- Для работы данного модуля необходима активация службы netconf на удалённом управляемом устройстве.
- Проверено на vSRX JUNOS версии 15.1X49-D15.4, vqfx-10000 JUNOS версии 15.1X53-D60.4.
- Рекомендуемое подключение —
netconf. См. Junos OS Platform Options. - Данный модуль также работает с подключениями
network_cliиlocalдля устаревших конвейеров. - Для получения информации по использованию CLI и netconf см. Руководство по параметрам платформы Junos OS
- Дополнительную информацию об использовании Ansible для управления сетевыми устройствами см. в Руководстве по сетям Ansible
- Дополнительную информацию об использовании Ansible для управления сетевыми устройствами Juniper см. на странице https://www.ansible.com/ansible-juniper.
Примеры
- name: run show version on remote devices
junos_command:
commands: show version
- name: run show version and check to see if output contains Juniper
junos_command:
commands: show version
wait_for: result[0] contains Juniper
- name: run multiple commands on remote nodes
junos_command:
commands:
- show version
- show interfaces
- name: run multiple commands and evaluate the output
junos_command:
commands:
- show version
- show interfaces
wait_for:
- result[0] contains Juniper
- result[1] contains Loopback0
- name: run commands and specify the output format
junos_command:
commands: show version
display: json
- name: run rpc on the remote device
junos_command:
commands: show configuration
display: set
- name: run rpc on the remote device
junos_command:
rpcs: get-software-information
Возвращаемые значения
Общие возвращаемые значения описаны в этом разделе, а ниже перечислены поля, уникальные для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| failed_conditions список | failed | Список условных проверок, которые не были выполнены Пример: ['...', '...'] |
| output список | Если display в формате xml | Набор преобразованных из xml в json форматов из ответов команд Пример: ['...', '...'] |
| stdout список | всегда, кроме ошибок низкого уровня (таких как плагин действия) | Набор ответов от команд Пример: ['...', '...'] |
| stdout_lines список | всегда, кроме ошибок низкого уровня (таких как плагин действия) | Значение stdout, разделенное на список Пример: [['...', '...'], ['...'], ['...']] |
Статус
Этот модуль помечен как превью, что означает, что он не гарантирует обратную совместимость интерфейса.
Техническое обслуживание
Этот модуль помечен как сетевой, что означает, что его обслуживает Команда по сетям Ansible. См. Поддержка и обслуживание модулей для получения дополнительной информации.
Для просмотра списка других модулей, которые также поддерживаются командой Ansible Network Team, см. здесь.
Поддержка
Для получения дополнительной информации о поддержке этого модуля компанией 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/junos_command_module.html