Spec-Zone.ru › Ansible

Модуль 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

строка

Если используется вместо path, напрямую задаёт содержимое запросов API.

Это может быть удобно для шаблонизации простых запросов; для более сложных запросов используйте модуль ansible.builtin.template.

Можно объединить несколько фрагментов XML IMC; они будут обработаны последовательно в одном потоке, а результаты Cisco IMC будут объединены.

Параметр content несовместим с параметром path.

hostname

псевдонимы: host, ip

строка / обязательный

IP-адрес или имя узла Cisco IMC, разрешаемое управляющим узлом Ansible.

password

строка

Пароль для аутентификации.

По умолчанию: "password"

path

псевдонимы: src, config_file

путь

Абсолютный путь к файлу, содержащему тело HTTP-запроса, отправляемого в REST API Cisco IMC.

Параметр path несовместим с параметром content.

protocol

строка

Используемый протокол подключения.

Варианты:

  • "http"
  • "https" ← (по умолчанию)

timeout

целое число

Тайм-аут на уровне сокета в секундах.

Это время, отводимое на каждое отдельное подключение (каждый фрагмент). Если достигнут timeout, выполнение модуля завершается с ошибкой Connection failure, указывающей, что The read operation timed out.

По умолчанию: 60

username

псевдонимы: user

строка

Имя пользователя для входа в коммутатор.

По умолчанию: "admin"

validate_certs

логический

Если false, SSL-сертификаты не проверяются.

Устанавливайте это значение в false только на контролируемых вами сайтах, использующих самоподписанные сертификаты.

Варианты:

  • false
  • true ← (по умолчанию)

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: полная

Может работать в режиме check_mode и возвращать прогноз изменения состояния, не изменяя целевой узел.

diff_mode

Поддержка: нет

В режиме diff возвращает сведения об изменениях (или о том, что может потребоваться изменить в check_mode).

Примечания

Примечание

  • Для 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.

Возвращается: успешно

Пример: "\"attributes\": {\n    \"cookie\": \"\",\n    \"outCookie\": \"1498902428/9de6dc36-417c-157c-106c-139efe2dc02a\",\n    \"outPriv\": \"admin\",\n    \"outRefreshPeriod\": \"600\",\n    \"outSessionId\": \"114\",\n    \"outVersion\": \"2.0(13e)\",\n    \"response\": \"yes\"\n}\n"

configConfMo

словарь

Вывод Cisco IMC в формате XML для любых XML-фрагментов configConfMo, преобразованный в JSON с использованием соглашения Cobra.

Возвращается: успешно

Пример: ""

elapsed

целое число

Время выполнения в секундах.

Возвращается: всегда

Пример: 31

error

словарь

Вывод ошибки Cisco IMC в формате XML для последнего запроса, преобразованный в JSON с использованием соглашения Cobra.

Возвращается: при ошибке

Пример: "\"attributes\": {\n    \"cookie\": \"\",\n    \"errorCode\": \"ERR-xml-parse-error\",\n    \"errorDescr\": \"XML PARSING ERROR: Element 'computeRackUnit', attribute 'admin_Power': The attribute 'admin_Power' is not allowed. \",\n    \"invocationResult\": \"594\",\n    \"response\": \"yes\"\n}\n"

error_code

строка

Код ошибки Cisco IMC.

Возвращается: при ошибке

Пример: "ERR-xml-parse-error"

error_text

строка

Сообщение об ошибке Cisco IMC.

Возвращается: при ошибке

Пример: "XML PARSING ERROR: Element 'computeRackUnit', attribute 'admin_Power': The attribute 'admin_Power' is not allowed.\n"

input

строка

Исходные XML-данные, отправленные в Cisco IMC и вызвавшие ошибку.

Возвращается: при ошибке

Пример: "<configConfMo><inConfig><computeRackUnit dn=\"sys/rack-unit-1\" admin_Power=\"down\"/></inConfig></configConfMo>\n"

output

строка

Исходные XML-данные, полученные от Cisco IMC и содержащие сведения об ошибке.

Возвращается: при ошибке

Пример: "<error cookie=\"\"\n  response=\"yes\"\n  errorCode=\"ERR-xml-parse-error\"\n  invocationResult=\"594\"\n  errorDescr=\"XML PARSING ERROR: Element 'computeRackUnit', attribute 'admin_Power': The attribute 'admin_Power' is not allowed.\\n\" />\n"

response

строка

Сообщение HTTP-ответа, включая длину содержимого.

Возвращается: всегда

Пример: "OK (729 bytes)"

status

словарь

Код состояния HTTP-ответа.

Возвращается: всегда

Пример: 200

Авторы

  • Dag Wieers (@dagwieers)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Задать вопрос
  • Сообщить об ошибке
  • Предложить новую функцию
  • Связь

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API