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.Это может быть удобно для шаблонизации простых запросов, для сложных запросов используйте модуль template. Можно объединить несколько фрагментов XML IMC, и они будут обрабатываться последовательно в одном потоке, вывод Cisco IMC впоследствии объединяется. Параметр content несовместим с параметром path. | |
| hostname обязательно | IP-адрес или имя хоста Cisco IMC, разрешаемое управляющим хостом Ansible. псевдонимы: host, ip | |
| password | По умолчанию: "пароль" | Пароль для аутентификации. |
| path | Имя абсолютного пути к файлу, содержащему тело HTTP-запроса, отправляемого в REST API Cisco IMC. Параметр path несовместим с параметром content.псевдонимы: src, config_file | |
| protocol |
| Протокол подключения. |
| timeout | По умолчанию: 60 | Таймаут уровня сокета в секундах. Это время, которое каждый отдельный канал (каждый фрагмент) может потратить. Если это timeout достигнуто, модуль завершится с Connection failure, указывающим, что The read operation timed out. |
| username | По умолчанию: "админ" | Имя пользователя для входа на коммутатор. псевдонимы: user |
| validate_certs bool |
| Если no, сертификаты SSL не будут проверены.Это следует устанавливать только для no используемых на контролируемых в частном порядке сайтах, использующих самоподписанные сертификаты. |
Примечания
Примечание
- Фрагментам XML не требуется cookie аутентификации, это автоматически встраивается модулем.
- Вывод XML Cisco IMC преобразуется в 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
Примеры
- 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 словарь | успех | Вывод XML Cisco IMC для входа, преобразованный в JSON с использованием соглашения Cobra Пример: "attributes": { "cookie": "", "outCookie": "1498902428/9de6dc36-417c-157c-106c-139efe2dc02a", "outPriv": "админ", "outRefreshPeriod": "600", "outSessionId": "114", "outVersion": "2.0(13e)", "response": "да" } |
| configConfMo словарь | успех | Вывод XML Cisco IMC для фрагментов XML configConfMo, преобразованный в JSON с использованием соглашения Cobra |
| elapsed целое число | всегда | Время выполнения в секундах Пример: 31 |
| error словарь | ошибка | Вывод XML ошибки Cisco IMC для последнего запроса, преобразованный в JSON с использованием соглашения Cobra Пример: "attributes": { "cookie": "", "errorCode": "ERR-xml-parse-error", "errorDescr": "ОШИБКА РАЗБОРА XML: Элемент 'computeRackUnit', атрибут 'admin_Power': Атрибут 'admin_Power' не разрешен. ", "invocationResult": "594", "response": "да" } |
| error_code строка | ошибка | Код ошибки Cisco IMC Пример: ERR-xml-parse-error |
| error_text строка | ошибка | Сообщение об ошибке Cisco IMC Пример: ОШИБКА РАЗБОРА XML: Элемент 'computeRackUnit', атрибут 'admin_Power': Атрибут 'admin_Power' не разрешен. |
| input строка | ошибка | НЕОБРАБОТАННЫЙ входной XML, вызвавший ошибку Пример: <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: Элемент 'computeRackUnit', атрибут 'admin_Power': Атрибут 'admin_Power' не разрешен.\n"/> |
| response строка | всегда | HTTP-сообщение ответа, включая длину содержимого Пример: OK (729 байт) |
| status словарь | всегда | HTTP-код ответа Пример: 200 |
Статус
Этот модуль помечен как превью, что означает, что его интерфейс не гарантируется обратной совместимостью.
Техническое обслуживание
Этот модуль помечен как сообщество, что означает, что его поддерживает сообщество Ansible. Подробнее см. в разделе Техническое обслуживание и поддержка модулей.
Список других модулей, поддерживаемых сообществом Ansible, см. здесь.
Автор
- Dag Wieers (@dagwieers)
Подсказка
Если вы заметите какие-либо проблемы в этом документе, вы можете отредактировать этот документ, чтобы улучшить его.
© 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/imc_rest_module.html