junipernetworks.junos.junos_command – Выполнение произвольных команд на устройстве Juniper JUNOS
Примечание
Этот плагин входит в состав коллекции junipernetworks.junos (версия 1.2.1).
Для его установки используйте: 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 указан, модуль не возвращает результат, пока условие не будет выполнено или не будет превышено количество повторов. | ||
| 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 целое число | Указывает порт для подключения к удаленному устройству. Значение порта по умолчанию — общеизвестный порт SSH 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 по сетям
- Дополнительную информацию об использовании 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–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/junipernetworks/junos/junos_command_module.html