Spec-Zone.ru › Ansible 2.4

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
  • http
  • 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

Spec-Zone.ru

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