ios_command – Выполнение команд на удаленных устройствах с Cisco IOS
Описание
- Отправляет произвольные команды на узел IOS и возвращает результаты, считанные с устройства. Этот модуль включает аргумент, который заставит модуль дождаться определённого условия перед возвратом или таймаутом, если условие не выполнено.
- Этот модуль не поддерживает выполнение команд в режиме конфигурации. Используйте ios_config для конфигурации устройств IOS.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| auth_pass строка | Устарело Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli и become: yes с become_pass. Для получения дополнительной информации см. руководство IOS Platform Options. Указывает пароль, который необходимо использовать для входа в привилегированный режим на удалённом устройстве. Если authorize равно false, этот аргумент не имеет эффекта. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTH_PASS. | ||
| authorize логическое |
| Устарело Начиная с 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 - |
| Аргумент match используется совместно с аргументом wait_for для указания политики соответствия. Допустимые значения — all или any. Если значение установлено в all, все условные операторы в wait_for должны быть выполнены. Если значение установлено в any, должно быть выполнено только одно из условий. | |
| provider словарь | Устарело Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli. Для получения дополнительной информации см. руководство IOS Platform Options. Объект словаря, содержащий данные подключения. | ||
| auth_pass строка | Указывает пароль, который необходимо использовать для входа в привилегированный режим на удалённом устройстве. Если authorize равно false, этот аргумент не имеет эффекта. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTH_PASS. | ||
| authorize логическое |
| Инструктирует модуль войти в привилегированный режим на удалённом устройстве перед отправкой любых команд. Если не указано, устройство попытается выполнить все команды в режиме без привилегий. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTHORIZE. | |
| host строка / обязательно | Указывает имя хоста DNS или адрес для подключения к удалённому устройству через указанный транспорт. Значение host используется в качестве адреса назначения для транспорта. | ||
| password строка | Указывает пароль для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации сессии SSH. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_PASSWORD. | ||
| port целое число | Значение по умолчанию: 22 | Указывает порт, который следует использовать при построении подключения к удалённому устройству. | |
| ssh_keyfile путь | Указывает SSH-ключ для аутентификации подключения к удалённому устройству. Это значение — путь к ключу, используемому для аутентификации сессии SSH. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_SSH_KEYFILE. | ||
| timeout целое число | Значение по умолчанию: 10 | Указывает таймаут в секундах для связи с сетевым устройством при подключении или отправке команд. Если таймаут истечёт до завершения операции, модуль выдаст ошибку. | |
| username строка | Устанавливает имя пользователя для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации сессии SSH. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_USERNAME. | ||
| retries - | Значение по умолчанию: 10 | Указывает количество попыток выполнения команды до её признания неудачной. Команда выполняется на целевом устройстве при каждой попытке и оценивается по условиям wait_for. | |
| wait_for - | Список условий, которые нужно проверить по выводу команды. Задача будет ждать, пока каждое условие не станет истинным, прежде чем перейти дальше. Если условие не выполняется в течение заданного количества попыток, задача завершается ошибкой. См. примеры. псевдонимы: waitfor | ||
Примечания
Примечание
- Проверено на IOS 15.6
- Для получения дополнительной информации об использовании Ansible для управления сетевыми устройствами см. Руководство по сетям Ansible
- Для получения дополнительной информации об использовании 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 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/ios_command_module.html