PowerEdge: Дослідження WSMAN поза межами перелічення

Summary: Dell OS та рішення для додатків у Dell TechCenter — Project Sputnik, Microsoft Windows, Red Hat Linux, SUSE, Ubuntu та інші

Acest articol se aplică pentru Acest articol nu se aplică pentru Acest articol nu este legat de un produs specific. Acest articol nu acoperă toate versiunile de produs existente.

Symptoms

WSMAN — це обраний API управління для Dell iDRAC, і ведуться масштабні зусилля, щоб зробити управління віддаленими системами максимально комплексним і максимально можливим. Після вивчення протоколу WSMAN для плагіна
я виявив, що після початкової дії перерахування все стає складним. Немає жодної документації чи прикладів, як викликати get/put/create/видалення/кастомні дії з правильними властивостями ключа. Основним джерелом цієї інформації є специфікація WSMAN DMTF та специфікація зв'язку WSMAN-CIM, які є надзвичайно тривалими для виконання. Знову ж таки, більшість змісту цієї статті взято з документів специфікації DMTF. Це спроба зробити цю інформацію зрозумілою за допомогою прикладів (на Linux).

 Я вже опублікував whitepaper про те, як почати з SFCB та openwsman на сайті https://linux.dell.com/files/whitepapers/WBEM_based_management_in_Linux.pdf. Якщо ви новачок у WSMAN і SFCB, pdf буде кращою відправною точкою, ніж ця стаття. Як зазначено вище, у цій статті головним образом присвячена реалізаціям

openwsman та SFCB CIMOM. Тепер, маючи сервер WSMAN, чи існує спосіб перелічити всі компоненти, якими можна керувати через API wsman? Більшість серверів 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>...................
 

Вихід виглядає так, як вище, що вказує на те, що у корені простору назв/cimv2, Linux_Processor є одним із зареєстрованих класів. Декілька класів CIM успадковуються, коли нові класи реєструються в root або cimv2, і команда перелічує всі ці назви класів. Загалом, можна ігнорувати всі класи з CIM_ Префікс. Усі класи з префіксом Linux_ — це класи, зареєстровані провайдерами, встановленими на Linux-системі.
Працюючи з Dell iDRAC, вас найбільше цікавлять класи з 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 або кастомних дій.
Отже, які ще техніки можна використати для цього? Ось тут можуть допомогти EPR.


End-Point Reference (EPR) — це вказівник на екземпляр із двома інформативними елементами: ResourceURI та набір селекторів. Повідомлення ResourceURI має назву класу, з якого створено екземпляр, а Селекторний набір перераховує властивості, з якими екземпляр може бути унікально ідентифікований. EPR певного класу можна перелічити за допомогою команди, подібної до наступних:

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. Це означає, що з усіх властивостей класу, успадкованих і локально визначених) ці властивості можна використовувати для унікальної ідентифікації екземпляра.


 Отже, ви можете очікувати дійсної відповіді від команди на кшталт:

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 і їх використання для доступу до інстансів, думаючи, що це може допомогти іншим. Не соромтеся залишати свої коментарі чи пропозиції нижче.

Відмова від відповідальності:

Вищенаведена стаття призначена лише для ознайомлення. Зміст взято з моєї інтерпретації згаданих технологій і термінологій. Ця інформація надається як є і може містити деякі типографічні помилки або технічні неточності.
 

Produse afectate

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

Produse

C Series, HS Series, Modular Infrastructure, Rack Servers, Tower Servers, XE Servers, XR Servers, OEM Server Solutions
Proprietăți articol
Article Number: 000145895
Article Type: Solution
Ultima modificare: 10 sept. 2026
Version:  6
Găsiți răspunsuri la întrebările dvs. de la alți utilizatori Dell
Servicii de asistență
Verificați dacă dispozitivul dvs. este acoperit de serviciile de asistență.