junos_command – Выполнение произвольных команд на устройстве Juniper JUNOS
Описание
- Отправляет произвольный набор команд на узел JUNOS и возвращает результаты, считанные с устройства. Этот модуль включает аргумент, который заставит модуль ожидать выполнения определённого условия перед возвратом или таймаутом, если условие не выполняется.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- jxmlease
- ncclient (>=v0.5.2)
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| commands - | Команды для отправки на удалённое устройство junos через настроенный провайдер. Возвращается результат выполнения команды. Если указан аргумент wait_for, модуль возвращает результат только после выполнения условия или превышения количества повторов. | ||
| display - |
"зависит от входного аргумента I(rpcs) или I(commands)" | Схема кодирования для сериализации вывода с устройства. Это обрабатывает правильное понимание вывода и применение условных выражений к набору результатов. Для аргумента rpcs значение по умолчанию для отображения - xml, а для аргумента commands - text. Значение set применимо только для извлечения конфигурации с устройства.Псевдонимы: format, output | |
| 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 | Указывает порт для подключения к удалённому устройству. Значение порта по умолчанию - 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 - | Аргумент 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
- Для получения дополнительной информации об использовании 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 список | Если display в формате xml | Набор преобразованных xml в json из ответов команд Пример: ['...', '...'] |
| stdout список | всегда, кроме ошибок низкого уровня (например, плагина действия) | Набор ответов от команд Пример: ['...', '...'] |
| stdout_lines список | всегда, кроме ошибок низкого уровня (например, плагина действия) | Значение stdout, разделенное на список Пример: [['...', '...'], ['...'], ['...']] |
Статус
- Модуль не гарантирует обратной совместимости интерфейса. [preview]
- Этот модуль поддерживается командой Ansible Network. [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.9/modules/junos_command_module.html