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 значение по умолчанию для отображения равно 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, стандартный SSH-порт (для 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 возвращаются в словарь результатов модуля в плейбуке. | ||
| 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для плейбуков старого формата. - Дополнительную информацию об использовании CLI и netconf см. в руководстве Junos OS Platform Options
- Дополнительную информацию об использовании Ansible для управления сетевыми устройствами см. в руководстве Ansible по сетям
- Дополнительную информацию об использовании 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.
Авторы
- Питер Спрыгада (@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.7/modules/junos_command_module.html