Spec-Zone.ru › Ansible

Модуль community.general.imc_rest — Управление оборудованием Cisco IMC через REST API

Примечание

Этот модуль входит в коллекцию community.general (версия 9.5.0).

Возможно, эта коллекция уже установлена, если вы используете пакет 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

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

Вернёт детали того, что изменилось (или, возможно, нуждается в изменении в check_mode), когда режим diff активен.

Примечания

Примечание

  • Фрагменты 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

Примеры

- 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 для фрагментов 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–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/general/imc_rest_module.html

Spec-Zone.ru

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