PowerEdge: Utforske WSMAN uten opplisting

Summary: Løsninger for Dell-operativsystemer og -applikasjoner på Dell TechCenter – Project Sputnik, Microsoft Windows, Red Hat Linux, SUSE, Ubuntu og mer

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 administrasjons-API-en for Dell iDRAC, og det pågår et omfattende arbeid for å gjøre ekstern systemadministrasjon så omfattende og som mulig. Etter å ha studert WSMAN-protokollen for et plugin
, fant jeg ut at det blir komplisert etter den første oppregningshandlingen. Det finnes ingen dokumentasjon eller eksempler på hvordan man påkaller get/put/create/delete/custom Actions med de riktige nøkkelegenskapene. Den primære kilden for denne informasjonen er DMTFs WSMAN-spesifikasjon og WSMAN-CIM-bindingsspesifikasjon som er smertefullt lange å følge. Igjen er det meste av innholdet i denne artikkelen fra DMTF-spesifikasjonsdokumentene. Dette er et forsøk på å gjøre denne informasjonen til å fordøye med noen eksempler (på Linux).

 Jeg har allerede lagt ut en whitepaper om hvordan du kommer i gang med SFCB og openwsman på https://linux.dell.com/files/whitepapers/WBEM_based_management_in_Linux.pdf. Hvis du er ny på WSMAN og SFCB, vil pdf være et bedre utgangspunkt enn denne artikkelen. Som i ovennevnte whitepaper omhandler primært openwsman og SFCB CIMOM implementeringer i denne artikkelen

Nå, gitt en WSMAN-server, er det en måte å liste opp alle komponentene som er håndterbare av wsman API? De fleste WSMAN-serverne snakker med en CIMOM på backend og avslører administrasjonsfunksjonene til CIMOMene. Det betyr at administrasjonsfunksjonene til en WSMAN-server avhenger av CIM-leverandørene som er registrert på CIMOM på backend. CIMOM har en iboende funksjon med navnet EnumerateClassNames definert som kan kalles for å liste alle klassene som er registrert på CIMOM.

Cause

Siden det ikke finnes én-til-én-tilordning for EnumerateClassNames i WSMAN-spesifikasjonen, aktiveres denne metoden på samme måte som alle andre egendefinerte funksjoner i WSMAN. Merk at dette er implementeringsspesifikt og gjelder implementering av wsmancli. Dette kan være annerledes eller oppdateres i fremtidige versjoner.

Resolution

CIMOMs iboende EnumerateClassNames Funksjonen kan kalles 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>...................
 

Utgangen ser ut som ovenfor, noe som indikerer at i navnerommet root / cimv2, Linux_Processor er en av klassene som er påmeldt. Flere CIM-klasser går i arv når nye klasser melder seg på root eller cimv2, og kommandoen viser alle disse klassenavnene. Vanligvis kan du ignorere alle klassene med CIM_ prefiks. Alle klassene med Linux_ prefiks er klassene registrert av leverandører installert på et Linux-system.
Når du arbeider med Dells iDRAC, er du mest interessert i kurs med DCIM_ prefix.

 Med klassenavnlisten bruker du getClass funksjon for å pakke ut Linux_Processor klassedefinisjon 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
 

 Kommandoen ovenfor viser alle egenskapene som er definert i Linux_Processor lokalt. Betydning noen av egenskapene som er arvet fra andre CIM_* Klasser er ikke oppført med gjeldende implementering. Klassedefinisjoner viser metoder, parametere og nøkkelegenskaper, men kommandoen returnerer bare lokale egenskaper, noe som gjør nøkkelegenskaper uidentifiserbare. Igjen er dette en implementeringsbegrensning i wsmancli.

Mens GetClass er en god start, er utdataene ikke tilstrekkelige til å identifisere nøkkelegenskaper for å påkalle få eller sette eller opprette eller egendefinerte handlinger.
Så, hvilke andre teknikker kan brukes til å oppnå dette? Det er her EPR kan hjelpe.


EPR (End-Point Reference) er en peker til en forekomst med to informasjonsdeler: ResourceURI og et velgersett. Meldingen ResourceURI har klassenavnet som forekomsten er opprettet fra, og velgersettet viser egenskapene en forekomst kan identifiseres unikt med. EPR i en bestemt klasse kan nummereres med en kommando som ligner på:

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>



Av alle prosessorene i målsystemet er utgangen ovenfor av én prosessor.
I utdataene er ressurs-URI-en oppført som https://sblim.sourceforge.net/wbem/wscim/1/cim-schema/2/Linux_Processor og SelectorSet Viser verdiene for __cimnamespace, SystemCreationClassName, SystemName, CreationClassName, and DeviceID. Dette betyr at av alle egenskapene i klassen arvet og lokalt definert) kan disse egenskapene brukes til å identifisere en forekomst unikt.


 Så du kan forvente et gyldig 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 andre egenskaper brukes i forespørselen ovenfor, kan ikke CIMOM i backend identifisere en forekomst unikt. Hvis du vil kjøre egendefinerte metoder på en forekomst, bruker du klassens EPR til å identifisere nøkkelegenskaper for metodeaktivering.


Du kan også liste opp EPR for en forening. Gitt et klassenavn kan man ikke finne ut om det er et standard klassenavn eller en foreningsklasse. En tilknytningsforekomst peker på to forekomster, så EPR inkluderer EPR for forekomstene eller objektene den refererer 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 koblinger Linux_ComputerSystem og Linux_Processor, som viser prosessorer er i datasystemer, detaljering GroupComponent og PartComponent seksjoner.

Jeg brukte tid på å forstå EPR og deres bruk for å få tilgang til forekomster, og tenkte at det kunne hjelpe andre. Føl deg fri til å gi meg dine kommentarer eller forslag nedenfor.

Ansvarsfraskrivelse:

Ovennevnte artikkel er kun til informasjonsformål. Innholdet er fra min tolkning av teknologiene og terminologiene som er nevnt. Denne informasjonen leveres som den er og kan inneholde noen typografiske feil og/eller tekniske unøyaktigheter.
 

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.