junos_command - Выполнение произвольных команд на устройстве Juniper JUNOS
Новая версия с 2.1.
Обзор
- Отправляет произвольный набор команд на узел JUNOS и возвращает результаты, считанные с устройства. Этот модуль включает аргумент, который заставит модуль ждать определённого условия перед возвратом или вызовет таймаут, если условие не будет выполнено.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- jxmlease
- ncclient (>=v0.5.2)
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| commands | Значение по умолчанию: None | Команды для отправки на удалённое устройство 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 | Значение по умолчанию: None | Устарело Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli или connection: netconf. Дополнительную информацию см. в руководстве Junos OS Platform Options. Объект словаря, содержащий сведения о соединении. | |
| 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 | Указывает порт для подключения к удалённому устройству. Значение порта по умолчанию — 22 (для transport=cli) или 830 (для transport=netconf) устройств. | |
| retries | Значение по умолчанию: 10 | Указывает количество попыток выполнения команды перед её признанием неудачной. Команда выполняется на целевом устройстве при каждой попытке и оценивается по условиям wait_for. | |
| rpcs (добавлено в 2.3) | Значение по умолчанию: None | Аргумент rpcs принимает список RPC, которые необходимо выполнить через сессию netconf, а результаты выполнения RPC возвращаются в словарь результатов модуля. | |
| wait_for (добавлено в 2.2) | Значение по умолчанию: None | Определяет, что следует оценивать из вывода команды и какие условия применять. Этот аргумент заставит задачу подождать, пока определённое условие не станет истинным, прежде чем продолжить. Если условие не станет истинным за указанное количество попыток, задача завершится ошибкой. См. примеры. алиасы: 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
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, разбитое на список Пример: [['...', '...'], ['...'], ['...']] |
Статус
Этот модуль помечен как превью, что означает, что его интерфейс не гарантирует обратную совместимость.
Поддержка
Дополнительную информацию о поддержке этого модуля компанией 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.5/modules/junos_command_module.html