Модуль community.general.imc_rest — управление оборудованием Cisco IMC через REST API
Примечание
Этот модуль входит в коллекцию community.general (версия 12.6.1).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Чтобы установить её, используйте: ansible-galaxy collection install community.general. Для использования этого модуля требуются дополнительные компоненты; подробности см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: community.general.imc_rest.
Краткое описание
- Предоставляет прямой доступ к 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 строка | Если используется вместо Это может быть удобно для шаблонизации простых запросов; для более сложных запросов используйте модуль ansible.builtin.template. Можно объединить несколько фрагментов XML IMC; они будут обработаны последовательно в одном потоке, а результаты Cisco IMC будут объединены. |
hostname псевдонимы: host, ip строка / обязательный | IP-адрес или имя узла Cisco IMC, разрешаемое управляющим узлом Ansible. |
password строка | Пароль для аутентификации. По умолчанию: |
path псевдонимы: src, config_file путь | |
protocol строка | Используемый протокол подключения. Варианты:
|
timeout целое число | Тайм-аут на уровне сокета в секундах. Это время, отводимое на каждое отдельное подключение (каждый фрагмент). Если достигнут По умолчанию: |
username псевдонимы: user строка | Имя пользователя для входа в коммутатор. По умолчанию: |
validate_certs логический | Если Устанавливайте это значение в Варианты:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: полная | Может работать в режиме |
diff_mode | Поддержка: нет | В режиме diff возвращает сведения об изменениях (или о том, что может потребоваться изменить в |
Примечания
Примечание
- Для XML-фрагментов не требуется cookie аутентификации: модуль добавляет его автоматически.
- Вывод Cisco IMC в формате XML преобразуется в JSON с использованием соглашения Cobra.
- Для любого запрошенного изменения configConfMo возвращается статус
modified, даже если конфигурация фактически не изменилась. В результате при последующих запусках модуль всегда сообщает об изменении. Если в будущей версии 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
community.general.imc_rest:
hostname: '{{ imc_hostname }}'
username: '{{ imc_username }}'
password: '{{ imc_password }}'
validate_certs: false # only do this when you trust the network!
content: |
<configConfMo><inConfig>
<computeRackUnit dn="sys/rack-unit-1" adminPower="down"/>
</inConfig></configConfMo>
delegate_to: localhost
- name: Configure IMC using multiple XML fragments
community.general.imc_rest:
hostname: '{{ imc_hostname }}'
username: '{{ imc_username }}'
password: '{{ imc_password }}'
validate_certs: false # only do this when you trust the network!
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
community.general.imc_rest:
hostname: '{{ imc_hostname }}'
username: '{{ imc_username }}'
password: '{{ imc_password }}'
validate_certs: false # only do this when you trust the network!
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
community.general.imc_rest:
hostname: '{{ imc_host }}'
username: '{{ imc_username }}'
password: '{{ imc_password }}'
validate_certs: false # only do this when you trust the network!
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
community.general.imc_rest:
hostname: '{{ imc_host }}'
username: '{{ imc_username }}'
password: '{{ imc_password }}'
validate_certs: false # only do this when you trust the network!
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
community.general.imc_rest:
hostname: '{{ imc_host }}'
username: '{{ imc_username }}'
password: '{{ imc_password }}'
validate_certs: false # only do this when you trust the network!
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. Возвращается: успешно Пример: |
configConfMo словарь | Вывод Cisco IMC в формате XML для любых XML-фрагментов configConfMo, преобразованный в JSON с использованием соглашения Cobra. Возвращается: успешно Пример: |
elapsed целое число | Время выполнения в секундах. Возвращается: всегда Пример: |
error словарь | Вывод ошибки Cisco IMC в формате XML для последнего запроса, преобразованный в JSON с использованием соглашения Cobra. Возвращается: при ошибке Пример: |
error_code строка | Код ошибки Cisco IMC. Возвращается: при ошибке Пример: |
error_text строка | Сообщение об ошибке Cisco IMC. Возвращается: при ошибке Пример: |
input строка | Исходные XML-данные, отправленные в Cisco IMC и вызвавшие ошибку. Возвращается: при ошибке Пример: |
output строка | Исходные XML-данные, полученные от Cisco IMC и содержащие сведения об ошибке. Возвращается: при ошибке Пример: |
response строка | Сообщение HTTP-ответа, включая длину содержимого. Возвращается: всегда Пример: |
status словарь | Код состояния HTTP-ответа. Возвращается: всегда Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/general/imc_rest_module.html