PowerEdge: Udforsk WSMAN hinsides optælling

Summary: Dell operativsystem- og programløsninger på Dell TechCenter – Project Sputnik, Microsoft Windows, Red Hat Linux, SUSE, Ubuntu og meget mere

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

WSMAN er den valgte administrations-API til Dell iDRAC, og der arbejdes på en omfattende indsats for at gøre fjernsystemadministration så omfattende og så omfattende som muligt. Efter at have studeret WSMAN-protokollen for et plugin
fandt jeg, at det bliver komplekst efter den indledende optællingshandling. Der er ingen dokumentation eller eksempler på, hvordan man aktiverer get/put/create/delete/custom Actions med de rigtige nøgleegenskaber. Den primære kilde til disse oplysninger er DMTF's WSMAN-specifikation og WSMAN-CIM-bindingsspecifikation, som er smerteligt langvarige at følge. Igen er det meste af indholdet i denne artikel fra DMTF-specifikationsdokumenterne. Dette er et forsøg på at få disse oplysninger til at fordøje med nogle eksempler (på Linux).

 Jeg har allerede sendt en hvidbog om, hvordan man kommer i gang med SFCB og openwsman på https://linux.dell.com/files/whitepapers/WBEM_based_management_in_Linux.pdf. Hvis du er ny til WSMAN og SFCB, ville pdf'en være et bedre udgangspunkt end denne artikel. Som i ovenstående hvidbog primært beskæftiger sig med openwsman og SFCB CIMOM implementeringer i denne artikel

Nu, givet en WSMAN-server, er der en måde at liste alle de komponenter, der kan administreres af wsman API? De fleste af WSMAN-serverne taler med en CIMOM på backend og afslører CIMOM'ernes administrationsfunktioner. Det betyder, at administrationsfunktionerne på en WSMAN-server afhænger af de CIM-udbydere, der er registreret til CIMOM på backend. CIMOM har en iboende funktion ved navnet EnumerateClassNames defineret, der kan kaldes for at liste alle de klasser, der er registreret til CIMOM.

Cause

Da der ikke er nogen en-til-en-tilknytning for EnumerateClassNames i WSMAN-specifikationen, aktiveres denne metode som enhver anden brugerdefineret funktion i WSMAN. Bemærk, at dette er implementeringsspecifikt og gælder for wsmancli-implementering. Dette kan være anderledes eller opdateret i fremtidige versioner.

Resolution

CIMOM's iboende EnumerateClassNames Funktion kan kaldes som følger med 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>...................
 

Outputtet ser ud som ovenfor, hvilket indikerer, at i navneområdet root/cimv2, Linux_Processor er en af de registrerede klasser. Flere CIM-klasser nedarves, når nye klasser tilmelder sig root eller cimv2, og kommandoen viser alle disse klassenavne. Generelt kan du ignorere alle klasser med CIM_ præfiks. Alle klasser med Linux_ præfiks er de klasser, der er registreret af udbydere installeret på et Linux-system.
Mens du arbejder med Dells iDRAC, er du mest interesseret i klasser med DCIM_ prefix.

 Med listen over holdnavne skal du bruge ikonet getClass funktion til at udtrække Linux_Processor Klassedefinition som følger:

 

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
 

 Ovenstående kommando viser alle de egenskaber, der er defineret i Linux_Processor lokalt. Det betyder nogen af de egenskaber, der er arvet fra andre CIM_* Klasser er ikke angivet med den aktuelle implementering. Klassedefinitioner afslører metoder, parametre og nøgleegenskaber, men kommandoen returnerer kun lokale egenskaber, hvilket gør nøgleegenskaber uidentificerbare. Igen er dette en implementeringsbegrænsning i wsmancli.

Mens GetClass er en god start, er dens output ikke tilstrækkeligt til at identificere nøgleegenskaber til påkaldelse af få eller sætte eller oprette eller brugerdefinerede handlinger.
Så hvilke andre teknikker kan bruges til at opnå dette? Det er her, EPR'er kan hjælpe.


End-Point Reference (EPR) er en markør til en forekomst med to oplysninger: ResourceURI og et vælgersæt. Meddelelsen ResourceURI har det klassenavn, som forekomsten er oprettet ud fra, og vælgersættet viser de egenskaber, som en forekomst kan identificeres entydigt med. EPR'er for en bestemt klasse kan optælles med en kommando, der ligner:

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>



Af alle processorerne i målsystemet er ovennævnte output af en processor.
I outputtet er resourceURI'en angivet som https://sblim.sourceforge.net/wbem/wscim/1/cim-schema/2/Linux_Processor og SelectorSet Viser værdierne for __cimnamespace, SystemCreationClassName, SystemName, CreationClassName, and DeviceID. Det betyder, at af alle egenskaber i klassen nedarvet og lokalt defineret) kan disse egenskaber bruges til entydigt at identificere en forekomst.


 Så du kan forvente et gyldigt svar fra en kommando som:

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



 Hvis der bruges andre egenskaber i ovenstående anmodning, kan CIMOM i backend ikke identificere en forekomst entydigt. Hvis du vil køre brugerdefinerede metoder på en forekomst, skal du bruge klassens EPR til at identificere nøgleegenskaber for metodeaktivering.


Du kan også opregne en forenings EPR'er. Givet et klassenavn kan man ikke finde ud af, om det er et standard klassenavn eller en foreningsklasse. En tilknytningsinstans peger på to forekomster, så dens EPR inkluderer EPR'erne for de forekomster eller objekter, den henviser til. Følgende er et eksempel på det samme:

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 Links Linux_ComputerSystem og Linux_Processor, der viser, at processorer er i computersystemer, med detaljer GroupComponent og PartComponent sektioner.

Jeg brugte tid på at forstå EPR'er og deres brug til at få adgang til forekomster og tænkte, at det kunne hjælpe andre. Du er velkommen til at efterlade mig dine kommentarer eller forslag nedenfor.

Ansvarsfraskrivelse:

Ovenstående artikel er kun til orientering. Indholdet er fra min fortolkning af de nævnte teknologier og terminologier. Disse oplysninger gives, som de er, og kan indeholde nogle typografiske fejl og/eller tekniske unøjagtigheder.
 

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.