ios_command - Выполнение команд на удалённых устройствах с Cisco IOS
Новая версия с 2.1.
Описание
- Отправляет произвольные команды узлу ios и возвращает результаты, считанные с устройства. Этот модуль включает аргумент, который заставит модуль дождаться определённого условия до возврата или таймаута, если условие не выполнено.
- Этот модуль не поддерживает выполнение команд в режиме конфигурации. Используйте ios_config для конфигурации устройств IOS.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| auth_pass | Устарело Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli и become: yes с become_pass. Дополнительную информацию см. в руководстве IOS Platform Options. Указывает пароль для использования при необходимости входа в привилегированный режим на удалённом устройстве. Если authorize ложно, этот аргумент ничего не делает. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTH_PASS. | ||
| authorize bool |
| Устарело Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli и become: yes. Дополнительную информацию см. в руководстве IOS Platform Options. Указывает модулю войти в привилегированный режим на удалённом устройстве перед отправкой команд. Если не указано, устройство попытается выполнить все команды в режиме без привилегий. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTHORIZE. | |
| commands обязательно | Список команд для отправки на удалённое устройство ios через настроенный провайдер. Результаты выполнения команды возвращаются. Если указан аргумент wait_for, модуль не возвращает значение, пока условие не будет выполнено или истечёт срок ожидания. Если для отправленной команде требуется ввод с клавиатуры, можно передать словарь, содержащий command, answer и prompt. Обычно ответы — 'y' или "\r" (возврат каретки, должен быть в двойных кавычках). См. примеры. | ||
| interval | По умолчанию: 1 | Настраивает интервал ожидания в секундах между повторами команды. Если команда не выполняет заданные условия, интервал указывает, сколько ждать перед повторной попыткой. | |
| match (добавлено в 2.2) |
| Аргумент match используется вместе с аргументом wait_for для задания политики сопоставления. Допустимые значения — all или any. Если значение установлено на all, все условия в wait_for должны быть выполнены. Если значение установлено на any, достаточно выполнения одного из условий. | |
| provider | Устарело Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli. Дополнительную информацию см. в руководстве IOS Platform Options. Объект словаря, содержащий детали подключения. | ||
| host обязательно | Указывает имя хоста DNS или адрес для подключения к удалённому устройству через указанный транспорт. Значение host используется в качестве целевого адреса для транспорта. | ||
| port | По умолчанию: 22 | Указывает порт для подключения к удалённому устройству. | |
| username | Указывает имя пользователя для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации сессии SSH. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_USERNAME. | ||
| password | Указывает пароль для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации сессии SSH. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_PASSWORD. | ||
| timeout | По умолчанию: 10 | Устанавливает таймаут в секундах для связи с сетевым устройством для подключения или отправки команд. Если таймаут превышен до завершения операции, модуль вернёт ошибку. | |
| ssh_keyfile | Указывает SSH-ключ для аутентификации подключения к удалённому устройству. Это путь к ключу, используемому для аутентификации сессии SSH. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_SSH_KEYFILE. | ||
| authorize bool |
| Указывает модулю войти в привилегированный режим на удалённом устройстве перед отправкой команд. Если не указано, устройство попытается выполнить все команды в режиме без привилегий. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTHORIZE. | |
| auth_pass | Указывает пароль для использования при необходимости входа в привилегированный режим на удалённом устройстве. Если authorize ложно, этот аргумент ничего не делает. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTH_PASS. | ||
| retries | По умолчанию: 10 | Указывает количество попыток выполнения команды перед её признанием неудачной. Команда выполняется на целевом устройстве при каждой попытке и оценивается по условиям wait_for. | |
| wait_for (добавлено в 2.2) | Список условий для проверки по выводу команды. Задача ждёт выполнения каждого условия перед продолжением. Если условие не выполняется в течение заданного числа попыток, задача завершается ошибкой. См. примеры. псевдонимы: waitfor | ||
Примечания
Примечание
- Проверено на IOS 15.6
- Дополнительную информацию об использовании Ansible для управления сетевыми устройствами см. в руководстве Ansible Network Guide
- Дополнительную информацию об использовании Ansible для управления устройствами Cisco см. на странице интеграции Cisco.
Примеры
tasks:
- name: run show version on remote devices
ios_command:
commands: show version
- name: run show version and check to see if output contains IOS
ios_command:
commands: show version
wait_for: result[0] contains IOS
- name: run multiple commands on remote nodes
ios_command:
commands:
- show version
- show interfaces
- name: run multiple commands and evaluate the output
ios_command:
commands:
- show version
- show interfaces
wait_for:
- result[0] contains IOS
- result[1] contains Loopback0
- name: run commands that require answering a prompt
ios_command:
commands:
- command: 'clear counters GigabitEthernet0/1'
prompt: 'Clear "show interface" counters on this interface \[confirm\]'
answer: 'y'
- command: 'clear counters GigabitEthernet0/2'
prompt: '[confirm]'
answer: "\r"
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое | Описание |
|---|---|---|
| failed_conditions список | неудача | Список условий, которые не выполнены Пример: ['...', '...'] |
| stdout список | всегда, кроме ошибок низкого уровня (например, модуля действий) | Набор ответов от команд Пример: ['...', '...'] |
| stdout_lines список | всегда, кроме ошибок низкого уровня (например, модуля действий) | Значение stdout, разделенное на список Пример: [['...', '...'], ['...'], ['...']] |
Статус
Этот модуль помечен как превью, что означает, что он не гарантирует обратную совместимость интерфейса.
Техническое обслуживание
Этот модуль помечен как сетевой, что означает, что он поддерживается командой Ansible по работе с сетями. Для получения дополнительной информации см. Техническое обслуживание и поддержка модулей.
Для списка других модулей, также поддерживаемых командой Ansible Network Team, см. здесь.
Поддержка
Для получения дополнительной информации о поддержке этого модуля 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.6/modules/ios_command_module.html