PowerEdge: изучение WSMAN за пределами перечисления

Summary: Решения Dell для ОС и приложений на портале Dell TechCenter — Project Sputnik, Microsoft Windows, Red Hat Linux, SUSE, Ubuntu и многое другое

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

В качестве API управления для Dell iDRAC был выбран WSMAN, и в настоящее время ведутся масштабные усилия, чтобы сделать удаленное управление системами как можно более всеобъемлющим. Изучив протокол WSMAN для плагина
, я обнаружил, что он становится сложным после первоначального действия перечисления. Нет документации или примеров того, как вызывать действия get/put/create/delete/custom с правильными свойствами ключа. Основным источником этой информации является спецификация WSMAN от компании DMTF и спецификация связывания WSMAN-CIM, слишком объемные, чтобы им следовать. Повторю, большая часть содержимого этой статьи взята из документов спецификации DMTF. Это попытка усвоить эту информацию на некоторых примерах (в Linux).

 Технический документ о том, как начать работу с SFCB и openwsman уже опубликован на сайте https://linux.dell.com/files/whitepapers/WBEM_based_management_in_Linux.pdf. Если вы новичок в WSMAN и SFCB, pdf-файл будет лучшей отправной точкой, чем эта статья. Как и в приведенном выше техническом документе, в этой статье

в основном рассматриваются реализации openwsman и SFCB CIMOM Теперь, имея сервер WSMAN, есть ли способ вывести список всех компонентов, которыми управляет wsman API? Большинство серверов WSMAN взаимодействуют с CIMOM на сервере и предоставляют функции управления CIMOM. То есть возможности управления сервера WSMAN зависят от поставщиков CIM, зарегистрированных в CIMOM на внутреннем сервере. В CIMOM есть внутренняя функция EnumerateClassNames, которую можно вызвать для вывода списка всех классов, зарегистрированных в CIMOM.

Cause

Поскольку в спецификации WSMAN нет взаимно-однозначного сопоставления для EnumerateClassNames , этот метод вызывается так же, как и любая другая пользовательская функция в WSMAN. Обратите внимание, что это зависит от реализации и применяется к реализации wsmancli. Процесс может отличаться или быть обновлен в будущих выпусках.

Resolution

Встроенная функция CIMOM EnumerateClassNames можно вызвать следующим образом с помощью wsmancli:

 

wsman invoke -a EnumerateClassNames --hostname=test_host --port=5985 --username=abc --password=password http://schemas.openwsman.org/wbem/wscim/1/instrinsic  --namespace=root/cimv2

 

 <s:Body>

    <n1:EnumerateClassNames>

      <n1:name>root/cimv2:CIM_Service</n1:name>

      <n1:name>root/cimv2:Syslog_RecordInLog</n1:name>

      <n1:name>root/cimv2:Linux_SambaValidUsersForShare</n1:name>

       <n1:name>root/cimv2:Linux_BaseBoard</n1:name>

      <n1:name>root/cimv2:Linux_SambaForceUserForShare</n1:name>

      <n1:name>root/cimv2:Linux_Processor</n1:name>

      <n1:name>root/cimv2:CIM_RecordForLog</n1:name>

      <n1:name>root/cimv2:Linux_SambaShareForService</n1:name>

      <n1:name>root/cimv2:Linux_SambaServiceConfigurationForService</n1:name>

      <n1:name>root/cimv2:Linux_SambaHostsForService</n1:name>

      <n1:name>root/cimv2:Linux_SambaForceUserForGlobal</n1:name>

      <n1:name>root/cimv2:CIM_OSProcess</n1:name>

      <n1:name>root/cimv2:CIM_RunningOS</n1:name>...................
 

Вывод выглядит так, как показано выше, указывая, что в пространстве имен root/cimv2 Linux_Processor является одним из зарегистрированных классов. Несколько классов CIM наследуются, когда новые классы регистрируются в root или cimv2, и команда выводит список всех этих имен классов. Как правило, вы можете игнорировать все классы с помощью CIM_ префикс. Все классы с Linux_ префиксом являются классами, зарегистрированными поставщиками, установленными в системе Linux.
При работе с iDRAC от Dell вас больше всего интересуют занятия с DCIM_ prefix.

 В списке имен классов используйте команду getClass для извлечения Linux_Processor определение класса следующим образом:

 

wsman invoke -a GetClass --hostname=test_host --port=5985 --username=abc --password=password http://schemas.openwsman.org/wbem/wscim/1/intrinsic/Linux_Processor  --namespace=root/cimv2
 

 Приведенная выше команда перечисляет все свойства, определенные в свойстве Linux_Processor локально. Имеется в виду любое из свойств, унаследованных от других CIM_* Классы не перечислены в текущей реализации. Определения классов раскрывают методы, параметры и свойства ключей, но команда возвращает только локальные свойства, что делает ключевые свойства неидентифицируемыми. Опять же, это ограничение реализации в wsmancli.

В то время как GetClass является хорошим началом, его выходных данных недостаточно для определения ключевых свойств для вызова действий get, put, create или custom.
Итак, какие еще методы можно использовать для этого? В этом могут помочь РОП.


End-Point Reference (EPR) — это указатель на экземпляр с двумя фрагментами информации: ResourceURI и Селекторный набор. В строке ResourceURI имеет имя класса, из которого создан экземпляр, а в Selector Set перечислены свойства, с помощью которых экземпляр может быть однозначно идентифицирован. ЭПР определенного класса можно перечислить с помощью команды, аналогичной следующей:

wsman enumerate -M epr  http://sblim.sf.net/wbem/wscim/1/cim-schema/2/Linux_Processor -h test_host-P 5985 -u abc -p password -O out

 <?xml version="1.0" encoding="UTF-8"?>

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsen="http://schemas.xmlsoap.org/ws/2004/09/enumeration" xmlns:wsman="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd">

  <s:Header>

    <wsa:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:To>

    <wsa:Action>http://schemas.xmlsoap.org/ws/2004/09/enumeration/PullResponse</wsa:Action>

    <wsa:RelatesTo>uuid:ca52c9e9-cd47-1d47-8003-a52924d9bed4</wsa:RelatesTo>

    <wsa:MessageID>uuid:ca622bb3-cd47-1d47-8097-a52924d9bed4</wsa:MessageID>

  </s:Header>

  <s:Body>

    <wsen:PullResponse>

      <wsen:EnumerationContext>ca4fdd21-cd47-1d47-8095-a52924d9bed4</wsen:EnumerationContext>

      <wsen:Items>

        <wsa:EndpointReference>

          <wsa:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:Address>

          <wsa:ReferenceParameters>

            <wsman:ResourceURI>http://sblim.sf.net/wbem/wscim/1/cim-schema/2/Linux_Processor</wsman:ResourceURI>

            <wsman:SelectorSet>

              <wsman:Selector Name="__cimnamespace">root/cimv2</wsman:Selector>

              <wsman:Selector Name="SystemCreationClassName">Linux_ComputerSystem</wsman:Selector>

              <wsman:Selector Name="SystemName">localhost.localdomain</wsman:Selector>

              <wsman:Selector Name="CreationClassName">Linux_Processor</wsman:Selector>

              <wsman:Selector Name="DeviceID">0</wsman:Selector>

            </wsman:SelectorSet>

          </wsa:ReferenceParameters>

        </wsa:EndpointReference>

      </wsen:Items>

    </wsen:PullResponse>

  </s:Body>

</s:Envelope>



Из всех процессоров в целевой системе указанный выше вывод относится к одному процессору.
В выходных данных resourceURI отображается как https://sblim.sourceforge.net/wbem/wscim/1/cim-schema/2/Linux_Processor и SelectorSet перечисляет значения __cimnamespace, SystemCreationClassName, SystemName, CreationClassName, and DeviceID. Это означает, что из всех свойств класса inherit и local-defined) эти свойства могут быть использованы для уникальной идентификации экземпляра.


 Таким образом, можно ожидать действительный ответ от такой команды, как:

wsman get  http://sblim.sf.net/wbem/wscim/1/cim-schema/2/Linux_Processor?SystemCreationClassName="Linux_ComputerSystem",SystemName="localhost.localdomain",CreationClassName="Linux_Processor",DeviceID="3",__cimnamespace="root/cimv2" -h test_host -P 5985 -u abc -p password -O get



 Если в вышеуказанном запросе используются какие-либо другие свойства, CIMOM в серверной части не может однозначно идентифицировать экземпляр. Чтобы запустить пользовательские методы в экземпляре, используйте EPR класса для определения ключевых свойств для вызова метода.


Также можно перечислить EPR связи. В случае, если не удается определить, является ли имя класса стандартным именем класса или классом связи. Экземпляр ассоциации указывает на два экземпляра, поэтому его EPR включает в себя EPR экземпляров или объектов, на которые он ссылается. Ниже приведен пример того же самого:

wsman enumerate -M epr  http://sblim.sf.net/wbem/wscim/1/cim-schema/2/Linux_CSProcessor -h test_host -P 5985 -u abc -p password -O out

 <?xml version="1.0" encoding="UTF-8"?>

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsen="http://schemas.xmlsoap.org/ws/2004/09/enumeration" xmlns:wsman="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd">

  <s:Header>

    <wsa:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:To>

    <wsa:Action>http://schemas.xmlsoap.org/ws/2004/09/enumeration/PullResponse</wsa:Action>

    <wsa:RelatesTo>uuid:2efbfcad-cd4b-1d4b-8003-a52924d9bed4</wsa:RelatesTo>

    <wsa:MessageID>uuid:2efc1c6f-cd4b-1d4b-80b3-a52924d9bed4</wsa:MessageID>

  </s:Header>

  <s:Body>

    <wsen:PullResponse>

      <wsen:EnumerationContext>2ef7f6f5-cd4b-1d4b-80b1-a52924d9bed4</wsen:EnumerationContext>

      <wsen:Items>

        <wsa:EndpointReference>

          <wsa:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:Address>

          <wsa:ReferenceParameters>

            <wsman:ResourceURI>http://sblim.sf.net/wbem/wscim/1/cim-schema/2/Linux_CSProcessor</wsman:ResourceURI>

            <wsman:SelectorSet>

              <wsman:Selector Name="__cimnamespace">root/cimv2</wsman:Selector>

              <wsman:Selector Name="GroupComponent">

                <wsa:EndpointReference>

                  <wsa:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:Address>

                  <wsa:ReferenceParameters>

                    <wsman:ResourceURI>http://sblim.sf.net/wbem/wscim/1/cim-schema/2/Linux_ComputerSystem</wsman:ResourceURI>

                    <wsman:SelectorSet>

                      <wsman:Selector Name="CreationClassName">Linux_ComputerSystem</wsman:Selector>

                      <wsman:Selector Name="Name">localhost.localdomain</wsman:Selector>

                      <wsman:Selector Name="__cimnamespace">root/cimv2</wsman:Selector>

                    </wsman:SelectorSet>

                  </wsa:ReferenceParameters>

                </wsa:EndpointReference>

              </wsman:Selector>

              <wsman:Selector Name="PartComponent">

                <wsa:EndpointReference>

                  <wsa:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:Address>

                  <wsa:ReferenceParameters>

                    <wsman:ResourceURI>http://sblim.sf.net/wbem/wscim/1/cim-schema/2/Linux_Processor</wsman:ResourceURI>

                    <wsman:SelectorSet>

                      <wsman:Selector Name="SystemCreationClassName">Linux_ComputerSystem</wsman:Selector>

                      <wsman:Selector Name="SystemName">localhost.localdomain</wsman:Selector>

                      <wsman:Selector Name="CreationClassName">Linux_Processor</wsman:Selector>

                      <wsman:Selector Name="DeviceID">0</wsman:Selector>

                      <wsman:Selector Name="__cimnamespace">root/cimv2</wsman:Selector>

                    </wsman:SelectorSet>

                  </wsa:ReferenceParameters>

                </wsa:EndpointReference>

              </wsman:Selector>

            </wsman:SelectorSet>

          </wsa:ReferenceParameters>

        </wsa:EndpointReference>

      </wsen:Items>

    </wsen:PullResponse>

  </s:Body>

</s:Envelope>



Linux_CSProcessor Ссылки Linux_ComputerSystem и Linux_Processor, показывающий, что процессоры находятся в компьютерных системах, с подробными сведениями GroupComponent и PartComponent разделов.

Я потратил некоторое время на изучение EPR и их использования для доступа к экземплярам, думая, что это может помочь другим. Не стесняйтесь оставлять мне свои комментарии или предложения ниже.

Дисклеймер:

Вышеуказанная статья носит исключительно информационный характер. Содержание основано на моей интерпретации упомянутых технологий и терминологии. Эта информация предоставляется на условиях «как есть» и может содержать опечатки и/или технические неточности.
 

Affected Products

SUSE Linux Enterprise Server 12, Red Hat Enterprise Linux Version 9, Red Hat Enterprise Linux Version 8, SUSE Linux Enterprise Server 15, Ubuntu Server LTS

Products

C Series, HS Series, Modular Infrastructure, Rack Servers, Tower Servers, XE Servers, XR Servers, OEM Server Solutions
Article Properties
Article Number: 000145895
Article Type: Solution
Last Modified: 10 Sept 2026
Version:  6
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.