junipernetworks.junos.junos_command – Выполнение произвольных команд на устройстве Juniper JUNOS
Примечание
Этот плагин входит в коллекцию junipernetworks.junos (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install junipernetworks.junos
Для использования в плейбуке укажите: junipernetworks.junos.junos_command
Добавлена в версии 1.0.0: модуля junipernetworks.junos
Обзор
- Отправляет произвольный набор команд на узел JUNOS и возвращает результаты, считанные с устройства. В этом модуле есть аргумент, который заставит модуль ожидать выполнения определенного условия перед возвратом или применит таймаут, если условие не выполнено.
Примечание
У этого модуля есть соответствующий плагин действий.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- jxmlease
- ncclient (>=v0.5.2)
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| commands список / элементы=строка | Команды, которые нужно отправить на удаленное устройство junos через настроенный поставщик. Результирующий вывод команды возвращается. Если предоставлен аргумент wait_for, модуль не возвращается, пока условие не будет выполнено или количество retries не будет превышено. | ||
| display строка |
| Схема кодирования для сериализации вывода с устройства. Это обрабатывает, как правильно понимать вывод и применять условные пути к результатному набору. Для аргумента rpcs значение по умолчанию для параметра display — xml, а для аргумента commands — text. Значение set применимо только для извлечения конфигурации с устройства.псевдонимы: формат, вывод | |
| interval целое число | По умолчанию: 1 | Настраивает интервал в секундах ожидания между повторными попытками выполнения команды. Если команда не удовлетворяет указанному условному выражению, интервал указывает, как долго ждать перед повторной попыткой выполнения команды. | |
| match строка |
| Аргумент 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 используется в качестве адреса назначения для транспорта. | ||
| password строка | Указывает пароль для аутентификации подключения к удаленному устройству. Это значение используется для аутентификации сеанса SSH. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_PASSWORD. | ||
| port целое число | Указывает порт для подключения к удаленному устройству. Значение порта по умолчанию — 22 (для transport=cli) или 830 (для transport=netconf) устройства. | ||
| ssh_keyfile путь | Указывает SSH-ключ для аутентификации подключения к удаленному устройству. Это значение — путь к ключу, используемому для аутентификации сеанса SSH. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_SSH_KEYFILE. | ||
| timeout целое число | Указывает таймаут в секундах для связи с сетевым устройством при подключении или отправке команд. Если таймаут истечет до завершения операции, модуль выдаст ошибку. | ||
| transport строка |
| Настраивает транспортное соединение для подключения к удаленному устройству. | |
| username строка | Настраивает имя пользователя для аутентификации подключения к удаленному устройству. Это значение используется для аутентификации сеанса SSH. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_USERNAME. | ||
| retries целое число | По умолчанию: 10 | Указывает количество попыток выполнения команды до ее признания неудачной. Команда выполняется на целевом устройстве при каждой попытке и оценивается по условиям wait_for. | |
| rpcs список / элементы=строка | Аргумент rpcs принимает список RPC для выполнения в сеансе netconf, а результаты выполнения RPC возвращаются плейбуку в словаре результатов модуля. | ||
| wait_for список / элементы=строка | Указывает, что нужно оценить из вывода команды и какие условия применять. Этот аргумент заставит задачу подождать, пока определенное условие не станет истинным, прежде чем продолжить. Если условие не станет истинным в течение настроенного количества попыток, задача завершится ошибкой. См. примеры. псевдонимы: 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 Platform Options
- Дополнительную информацию о работе с Ansible для управления сетевыми устройствами см. в руководстве Ansible Network Guide
- Дополнительную информацию об использовании Ansible для управления сетевыми устройствами Juniper см. на https://www.ansible.com/ansible-juniper.
Примеры
- name: run show version on remote devices
junipernetworks.junos.junos_command:
commands: show version
- name: run show version and check to see if output contains Juniper
junipernetworks.junos.junos_command:
commands: show version
wait_for: result[0] contains Juniper
- name: run multiple commands on remote nodes
junipernetworks.junos.junos_command:
commands:
- show version
- show interfaces
- name: run multiple commands and evaluate the output
junipernetworks.junos.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
junipernetworks.junos.junos_command:
commands: show version
display: json
- name: run rpc on the remote device
junipernetworks.junos.junos_command:
commands: show configuration
display: set
- name: run rpc on the remote device
junipernetworks.junos.junos_command:
rpcs: get-software-information
Значения возврата
Общие значения возврата описаны в этом разделе, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| failed_conditions список / элементы=строка | неудачно | Список условных выражений, которые не выполнены Пример: ['...', '...'] |
| output список / элементы=строка | Если display в формате xml | Набор преобразованных xml в json формат из ответов команд Пример: ['...', '...'] |
| stdout список / элементы=строка | всегда, кроме ошибок низкого уровня (например, плагин действия) | Набор ответов от команд Пример: ['...', '...'] |
| stdout_lines список / элементы=строка | всегда, кроме ошибок низкого уровня (например, плагин действия) | Значение stdout, разделенное на список Пример: [['...', '...'], ['...'], ['...']] |
Авторы
- Peter Sprygada (@privateip)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/junipernetworks/junos/junos_command_module.html