PowerEdge: WSMAN verder ontdekken dan opsomming

Summary: Dell oplossingen voor besturingssystemen en applicaties op Dell TechCenter - Project Sputnik, Microsoft Windows, Red Hat Linux, SUSE, Ubuntu en meer

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 is de gekozen beheer-API voor Dell iDRAC en er worden uitgebreide inspanningen geleverd om extern systeembeheer zo uitgebreid en mogelijk te maken. Na het bestuderen van het WSMAN-protocol voor een plug-in,
ontdekte ik dat het complex wordt na de eerste opsommingsactie. Er is geen documentatie of voorbeelden voor het aanroepen van get/put/create/delete/custom Actions met de juiste sleuteleigenschappen. De primaire bron voor deze informatie is de WSMAN-specificatie van de DMTF en de WSMAN-CIM-bindingsspecificatie, die pijnlijk lang op zich laten wachten. Nogmaals, het grootste deel van de inhoud van dit artikel is afkomstig uit de DMTF-specificatiedocumenten. Dit is een poging om die informatie te verteren met enkele voorbeelden (op Linux).

 Ik heb al een whitepaper geplaatst over hoe je aan de slag kunt gaan met SFCB en openwsman op https://linux.dell.com/files/whitepapers/WBEM_based_management_in_Linux.pdf. Als u nieuw bent bij WSMAN en SFCB, zou de pdf een beter startpunt zijn dan dit artikel. Zoals in de bovenstaande whitepaper voornamelijk gaat over openwsman en SFCB CIMOM implementaties in dit artikel

Is er nu, gezien een WSMAN server, een manier om alle componenten op te sommen die beheerd kunnen worden door wsman API? De meeste WSMAN-servers communiceren met een CIMOM op de backend en leggen de beheerfunctionaliteiten van de CIMOM's bloot. Dit betekent dat de beheermogelijkheden van een WSMAN-server afhankelijk zijn van de CIM-providers die bij de CIMOM op de back-end zijn geregistreerd. De CIMOM heeft een intrinsieke functie met de naam EnumerateClassNames gedefinieerd die kan worden aangeroepen om alle klassen weer te geven die zijn geregistreerd bij CIMOM.

Cause

Aangezien er geen één-op-één-toewijzing is voor EnumerateClassNames in de WSMAN-specificatie, wordt deze methode net als elke andere aangepaste functie in WSMAN aangeroepen. Let op, dit is implementatiespecifiek en geldt voor wsmancli-implementatie. Dit kan anders zijn of worden bijgewerkt in toekomstige releases.

Resolution

De intrinsieke EnumerateClassNames functie kan als volgt worden aangeroepen met 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>...................
 

De uitvoer ziet er als hierboven uit, wat aangeeft dat in de namespace root/cimv2, Linux_Processor is een van de ingeschreven klassen. Verschillende CIM-klassen worden overgenomen wanneer nieuwe klassen worden geregistreerd in root of cimv2en de opdracht geeft al die klassenamen weer. Over het algemeen kun je alle lessen negeren met CIM_ voorvoegsel. Alle klassen met Linux_ voorvoegsel zijn de klassen die zijn geregistreerd door providers die op een Linux-systeem zijn geïnstalleerd.
Als u met iDRAC van Dell werkt, bent u vooral geïnteresseerd in lessen met DCIM_ prefix.

 Gebruik in de lijst met klassenamen de knop getClass functie voor het uitpakken van de Linux_Processor Definitie van klasse als volgt:

 

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
 

 De bovenstaande opdracht bevat alle eigenschappen die zijn gedefinieerd in het Linux_Processor lokaal. Dit betekent een van de eigenschappen die zijn geërfd van andere CIM_* Klassen worden niet vermeld bij de huidige implementatie. Klassedefinities tonen methoden, parameters en sleuteleigenschappen, maar de opdracht retourneert alleen lokale eigenschappen, waardoor belangrijke eigenschappen niet identificeerbaar zijn. Nogmaals, dit is een implementatiebeperking in wsmancli.

Terwijl GetClass is een goed begin, de uitvoer ervan is niet voldoende om de belangrijkste eigenschappen te identificeren voor het aanroepen van get or put of create of aangepaste acties.
Dus, welke andere technieken kunnen worden gebruikt om dit te bereiken? Dit is waar UPV's kunnen helpen.


End-Point Reference (EPR) is een verwijzing naar een instantie met twee stukjes informatie: de ResourceURI en een Selector Set. Het ResourceURI heeft de klassenaam op basis waarvan de instantie is gemaakt en de selectieset vermeldt de eigenschappen waarmee een instantie uniek kan worden geïdentificeerd. EPR's van een bepaalde klasse kunnen worden geïnventariseerd met een opdracht die vergelijkbaar is met:

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>



Van alle processoren in het doelsysteem is de bovenstaande uitvoer van één processor.
In de uitvoer wordt de resourceURI vermeld als https://sblim.sourceforge.net/wbem/wscim/1/cim-schema/2/Linux_Processor en de SelectorSet geeft de waarden weer van __cimnamespace, SystemCreationClassName, SystemName, CreationClassName, and DeviceID. Dit betekent dat van alle eigenschappen in de klasse overgeërfd en lokaal gedefinieerd) deze eigenschappen kunnen worden gebruikt om een instantie uniek te identificeren.


 U kunt dus een geldig antwoord verwachten van een opdracht als:

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



 Als er andere eigenschappen worden gebruikt in de bovenstaande aanvraag, kan de CIMOM in de back-end een instantie niet uniek identificeren. Als u aangepaste methoden wilt uitvoeren op een instantie, gebruikt u de EPR van de klasse om de belangrijkste eigenschappen voor het aanroepen van de methode te identificeren.


U kunt ook de UPV's van een vereniging opsommen. Gegeven een klassenaam kan men er niet achter komen of het een standaard klassenaam is of een associatieklasse. Een associatie-instantie verwijst naar twee instanties, dus de UPV bevat de UPV's van de instanties of objecten waarnaar wordt verwezen. Het volgende is een voorbeeld hiervan:

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 Koppelingen Linux_ComputerSystem en Linux_Processor, waaruit blijkt dat processors zich in computersystemen bevinden, met details GroupComponent en PartComponent secties.

Ik heb tijd besteed aan het begrijpen van EPD's en het gebruik ervan voor toegang tot instanties, omdat ik dacht dat het anderen zou kunnen helpen. Voel je vrij om hieronder je opmerkingen of suggesties achter te laten.

Disclaimer:

Bovenstaand artikel is alleen voor informatieve doeleinden. De inhoud is gebaseerd op mijn interpretatie van de genoemde technologieën en terminologieën. Deze informatie wordt verstrekt in de huidige vorm en kan typografische en/of technische onnauwkeurigheden bevatten.
 

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.