imc_rest - Управление оборудованием Cisco IMC через его REST API
Новая версия 2.4.
- Описание
- Требования (к хосту, на котором выполняется модуль)
- Параметры
- Примеры
- Возвращаемые значения
- Примечания
Описание
- Обеспечивает прямой доступ к REST API Cisco IMC.
- Выполнение любых изменений конфигурации и действий, поддерживаемых Cisco IMC.
- Дополнительная информация о REST API IMC доступна по адресу http://www.cisco.com/c/en/us/td/docs/unified_computing/ucs/c/sw/api/3_0/b_Cisco_IMC_api_301.html
Требования (к хосту, на котором выполняется модуль)
- lxml
- xmljson >= 0.1.8
Параметры
| параметр | обязательно | по умолчанию | варианты | комментарии |
|---|---|---|---|---|
| content |
нет |
При использовании вместо
path, напрямую задает содержимое запросов API.Это может быть удобно для шаблонизации простых запросов, для всего сложного используйте модуль шаблон.
Вы можете объединить несколько фрагментов XML IMC, и они будут обработаны последовательно в одном потоке, выходные данные Cisco IMC впоследствии объединяются.
Параметр
content взаимоисключает параметр path.
|
||
| hostname |
да |
IP-адрес или имя хоста Cisco IMC, разрешаемый управляющим хостом Ansible.
псевдонимы: host, ip
|
||
| password |
нет | пароль |
Пароль для аутентификации.
|
|
| path |
нет |
Имя абсолютного пути к файлу, содержащему тело HTTP-запроса, отправляемого в REST API Cisco IMC.
Параметр
path взаимоисключает параметр content.
псевдонимы: src
|
||
| protocol |
нет | https |
|
Протокол подключения для использования.
|
| timeout |
нет | 60 |
Таймаут уровня сокета в секундах.
Это время, которое может потратить каждое отдельное соединение (каждый фрагмент). Если этот
timeout будет достигнут, модуль завершится с Connection failure, указывающим, что The read operation timed out. |
|
| username |
нет | admin |
Имя пользователя для входа на коммутатор.
псевдонимы: user
|
|
| validate_certs |
нет | да |
|
Если
no, сертификаты SSL не будут проверены.Это следует установить только в
no на сайтах, контролируемых лично, использующих самозаверенные сертификаты. |
Примеры
- name: Power down server
imc_rest:
hostname: '{{ imc_hostname }}'
username: '{{ imc_username }}'
password: '{{ imc_password }}'
validate_certs: no
content: |
<configConfMo><inConfig>
<computeRackUnit dn="sys/rack-unit-1" adminPower="down"/>
</inConfig></configConfMo>
delegate_to: localhost
- name: Configure IMC using multiple XML fragments
imc_rest:
hostname: '{{ imc_hostname }}'
username: '{{ imc_username }}'
password: '{{ imc_password }}'
validate_certs: no
timeout: 120
content: |
<!-- Configure Serial-on-LAN -->
<configConfMo><inConfig>
<solIf dn="sys/rack-unit-1/sol-if" adminState="enable" speed=="115200" comport="com0"/>
</inConfig></configConfMo>
<!-- Configure Console Redirection -->
<configConfMo><inConfig>
<biosVfConsoleRedirection dn="sys/rack-unit-1/bios/bios-settings/Console-redirection"
vpBaudRate="115200"
vpConsoleRedirection="com-0"
vpFlowControl="none"
vpTerminalType="vt100"
vpPuttyKeyPad="LINUX"
vpRedirectionAfterPOST="Always Enable"/>
</inConfig></configConfMo>
delegate_to: localhost
- name: Enable PXE boot and power-cycle server
imc_rest:
hostname: '{{ imc_hostname }}'
username: '{{ imc_username }}'
password: '{{ imc_password }}'
validate_certs: no
content: |
<!-- Configure PXE boot -->
<configConfMo><inConfig>
<lsbootLan dn="sys/rack-unit-1/boot-policy/lan-read-only" access="read-only" order="1" prot="pxe" type="lan"/>
</inConfig></configConfMo>
<!-- Power cycle server -->
<configConfMo><inConfig>
<computeRackUnit dn="sys/rack-unit-1" adminPower="cycle-immediate"/>
</inConfig></configConfMo>
delegate_to: localhost
- name: Reconfigure IMC to boot from storage
imc_rest:
hostname: '{{ imc_host }}'
username: '{{ imc_username }}'
password: '{{ imc_password }}'
validate_certs: no
content: |
<configConfMo><inConfig>
<lsbootStorage dn="sys/rack-unit-1/boot-policy/storage-read-write" access="read-write" order="1" type="storage"/>
</inConfig></configConfMo>
delegate_to: localhost
- name: Add customer description to server
imc_rest:
hostname: '{{ imc_host }}'
username: '{{ imc_username }}'
password: '{{ imc_password }}'
validate_certs: no
content: |
<configConfMo><inConfig>
<computeRackUnit dn="sys/rack-unit-1" usrLbl="Customer Lab - POD{{ pod_id }} - {{ inventory_hostname_short }}"/>
</inConfig></configConfMo>
delegate_to: localhost
- name: Disable HTTP and increase session timeout to max value 10800 secs
imc_rest:
hostname: '{{ imc_host }}'
username: '{{ imc_username }}'
password: '{{ imc_password }}'
validate_certs: no
timeout: 120
content: |
<configConfMo><inConfig>
<commHttp dn="sys/svc-ext/http-svc" adminState="disabled"/>
</inConfig></configConfMo>
<configConfMo><inConfig>
<commHttps dn="sys/svc-ext/https-svc" adminState="enabled" sessionTimeout="10800"/>
</inConfig></configConfMo>
delegate_to: localhost
Возвращаемые значения
Общие возвращаемые значения описаны здесь Возвращаемые значения, следующие поля уникальны для этого модуля:
| имя | описание | возвращается | тип | пример |
|---|---|---|---|---|
| aaLogin |
Выходные данные Cisco IMC в формате XML для входа, преобразованные в JSON с использованием соглашения Cobra
|
успешно | dict | "attributes": { "cookie": "", "outCookie": "1498902428/9de6dc36-417c-157c-106c-139efe2dc02a", "outPriv": "admin", "outRefreshPeriod": "600", "outSessionId": "114", "outVersion": "2.0(13e)", "response": "yes" } |
| configConfMo |
Выходные данные Cisco IMC в формате XML для любых фрагментов XML configConfMo, преобразованные в JSON с использованием соглашения Cobra
|
успешно | dict | |
| elapsed |
Время выполнения в секундах
|
всегда | int | 31 |
| error |
Выходные данные Cisco IMC в формате XML с ошибкой для последнего запроса, преобразованные в JSON с использованием соглашения Cobra
|
неуспешно | dict | "attributes": { "cookie": "", "errorCode": "ERR-xml-parse-error", "errorDescr": "XML PARSING ERROR: Element 'computeRackUnit', attribute 'admin_Power': Атрибут 'admin_Power' не разрешен. ", "invocationResult": "594", "response": "yes" } |
| error_code |
Код ошибки Cisco IMC
|
неуспешно | строка | ERR-xml-parse-error |
| error_text |
Сообщение об ошибке Cisco IMC
|
неуспешно | строка | XML PARSING ERROR: Element 'computeRackUnit', attribute 'admin_Power': Атрибут 'admin_Power' не разрешен. |
| input |
НЕОБРАБОТАННЫЙ XML-вход, отправленный в Cisco IMC, вызвавший ошибку
|
неуспешно | строка | <configConfMo><inConfig><computeRackUnit dn="sys/rack-unit-1" admin_Power="down"/></inConfig></configConfMo> |
| output |
НЕОБРАБОТАННЫЙ XML-выход, полученный от Cisco IMC, с деталями об ошибке
|
неуспешно | строка | <error cookie="" response="yes" errorCode="ERR-xml-parse-error" invocationResult="594" errorDescr="XML PARSING ERROR: Element 'computeRackUnit', attribute 'admin_Power': Атрибут 'admin_Power' не разрешен.\n"/> |
| response |
Сообщение HTTP-ответа, включая длину содержимого
|
всегда | строка | OK (729 байт) |
| status |
Код состояния HTTP-ответа
|
всегда | dict | 200 |
Примечания
Примечание
- Фрагментам XML не требуется куки аутентификации, это автоматически встраивается модулем.
- Выходные данные Cisco IMC в формате XML преобразуются в JSON с использованием соглашения Cobra.
- Любое запрошенное изменение configConfMo имеет статус возврата «изменено», даже если с предыдущей конфигурацией не было фактических изменений. В результате, этот модуль всегда будет сообщать об изменениях при последующих запусках. В случае, если такое поведение будет исправлено в будущих обновлениях Cisco IMC, этот модуль автоматически адаптируется.
- Если у вас есть ошибка, связанная с
Connection failureотносительноThe read operation timed out, увеличьте параметрtimeout. Некоторые фрагменты XML могут занимать больше времени, чем значение таймаута по умолчанию. - Дополнительная информация о REST API IMC доступна по адресу http://www.cisco.com/c/en/us/td/docs/unified_computing/ucs/c/sw/api/3_0/b_Cisco_IMC_api_301.html
Статус
Этот модуль помечен как превью, что означает, что он не гарантирует обратную совместимость интерфейса.
Для получения помощи в разработке модулей, если вы заинтересованы, прочитайте Информация о сообществе и вклад, Тестирование Ansible и Разработка модулей.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/imc_rest_module.html