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 применимо только для извлечения конфигурации с устройства.псевдонимы: формат, вывод | |
| 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 используется в качестве адреса назначения для транспорта. | ||
| password строка | Указывает пароль для аутентификации подключения к удаленному устройству. Это значение используется для аутентификации сессии SSH. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_PASSWORD. | ||
| port целое число | Значение по умолчанию: 22 | Указывает порт для подключения к удаленному устройству. Значение порта по умолчанию — 22 (для transport=cli) или 830 (для transport=netconf) устройства. | |
| ssh_keyfile путь | Указывает SSH-ключ для аутентификации подключения к удаленному устройству. Это значение — путь к ключу, используемому для аутентификации сессии SSH. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_SSH_KEYFILE. | ||
| timeout целое число | Значение по умолчанию: 10 | Указывает таймаут в секундах для связи с сетевым устройством при подключении или отправке команд. Если таймаут превышен до завершения операции, модуль выдаст ошибку. | |
| username строка | Настраивает имя пользователя для аутентификации подключения к удаленному устройству. Это значение используется для аутентификации сессии SSH. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_USERNAME. | ||
| retries - | Значение по умолчанию: 10 | Указывает количество попыток выполнения команды перед ее признанием неудачной. Команда выполняется на целевом устройстве при каждой повторной попытке и оценивается по условиям wait_for. | |
| rpcs - добавлено в 2.3 | Аргумент rpcs принимает список RPC, которые необходимо выполнить в сессии netconf, а результаты выполнения RPC возвращаются в словарь результатов модуля в playbook. | ||
| 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для устаревших playbook. - Дополнительная информация об использовании 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
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 список | неуспешно | Список условных операторов, которые завершились неудачей Пример: ['...', '...'] |
| output список | Если отображение в формате xml. | Набор преобразованных xml в json из ответов команд Пример: ['...', '...'] |
| stdout список | всегда, за исключением ошибок низкого уровня (например, плагин действия) | Набор ответов от команд Пример: ['...', '...'] |
| stdout_lines список | всегда, за исключением ошибок низкого уровня (например, плагин действия) | Значение stdout, разделенное на список Пример: [['...', '...'], ['...'], ['...']] |
Статус
- Для этого модуля не гарантируется обратная совместимость. [превью]
- Этот модуль поддерживается командой Ansible Network. [сетевой]
Поддержка Red Hat
Дополнительную информацию о поддержке этого модуля Red Hat можно найти в этой статье базы знаний 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.8/modules/junos_command_module.html