cnos_command - Запуск произвольных команд на устройствах Lenovo CNOS
Новое в версии 2.6.
Описание
- Отправляет произвольные команды на узел CNOS и возвращает результаты, считанные с устройства. Модуль
cnos_commandвключает аргумент, который заставит модуль ожидать выполнения определенного условия перед возвратом или вызовет таймаут, если условие не выполняется.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| commands обязательно (добавлено в 2.6) | Список команд для отправки на удаленное устройство через настроенного поставщика. Результирующий вывод команды возвращается. Если предоставлен аргумент wait_for, модуль не возвращается до тех пор, пока условие не будет выполнено или не истечёт время ожидания. | ||
| interval (добавлено в 2.6) | Значение по умолчанию: 1 | Настраивает интервал в секундах ожидания между повторами команды. Если команда не выполняет заданных условий, интервал указывает время ожидания перед повторной попыткой. | |
| match (добавлено в 2.6) |
| Аргумент match используется совместно с аргументом wait_for для указания политики сопоставления. Допустимые значения — all или any. Если значение установлено в all, все условия в wait_for должны быть выполнены. Если значение установлено в any, должно быть выполнено только одно из условий. | |
| provider (добавлено в 2.6) | Объект словаря, содержащий данные подключения. | ||
| 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. | ||
| retries (добавлено в 2.6) | Значение по умолчанию: 10 | Указывает количество попыток выполнения команды перед её признанием неудачной. Команда выполняется на целевом устройстве на каждой попытке и оценивается в соответствии с условиями wait_for. | |
| wait_for (добавлено в 2.6) | Список условий, которые должны выполняться относительно вывода команды. Задача будет ждать выполнения каждого условия до перехода к следующему шагу. Если условие не выполняется в течение заданного числа попыток, задача завершается ошибкой. См. примеры. | ||
Примеры
# Note: examples below use the following provider dict to handle
# transport and authentication to the node.
---
vars:
cli:
host: "{{ inventory_hostname }}"
port: 22
username: admin
password: admin
timeout: 30
---
- name: test contains operator
cnos_command:
commands:
- show version
- show system memory
wait_for:
- "result[0] contains 'Lenovo'"
- "result[1] contains 'MemFree'"
provider: "{{ cli }}"
register: result
- assert:
that:
- "result.changed == false"
- "result.stdout is defined"
- name: get output for single command
cnos_command:
commands: ['show version']
provider: "{{ cli }}"
register: result
- assert:
that:
- "result.changed == false"
- "result.stdout is defined"
- name: get output for multiple commands
cnos_command:
commands:
- show version
- show interface information
provider: "{{ cli }}"
register: result
- assert:
that:
- "result.changed == false"
- "result.stdout is defined"
- "result.stdout | length == 2"
Возвращаемые значения
Общие возвращаемые значения описаны здесь, ниже приведены поля, уникальные для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| failed_conditions список | неуспешно | условия, которые не были выполнены Пример: ['...', '...'] |
| stdout список | всегда | набор ответов от команд Пример: ['...', '...'] |
| stdout_lines список | всегда | Значение stdout, разделенное на список Пример: [['...', '...'], ['...'], ['...']] |
Статус
Этот модуль помечен как превью, что означает, что его интерфейс не гарантированно будет обратной совместимостью.
Техническое обслуживание
Этот модуль помечен как сообщество, что означает, что его поддерживает сообщество Ansible. Подробнее см. Техническое обслуживание и поддержка модулей.
Список других модулей, которые также поддерживаются сообществом Ansible, см. здесь.
Автор
- Anil Kumar Muraleedharan (@amuraleedhar)
Подсказка
Если вы обнаружите какие-либо проблемы в этом руководстве, вы можете отредактировать этот документ для его улучшения.
© 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/cnos_command_module.html