PowerEdge: WSMAN:n tutkiminen luettelointia pidemmälle
Summary: Dellin käyttöjärjestelmä- ja sovellusratkaisut Dell TechCenterissä – Project Sputnik, Microsoft Windows, Red Hat Linux, SUSE, Ubuntu ja niin edelleen
Symptoms
WSMAN-protokollaa huomasin, että se muuttuu monimutkaiseksi alkuperäisen luettelointitoiminnon jälkeen. Ei ole olemassa dokumentaatiota tai esimerkkejä siitä, miten get/put/create/delete/custom-toiminnot käynnistetään oikeilla avainominaisuuksilla. Näiden tietojen ensisijainen lähde on DMTF: n WSMAN-spesifikaatio ja WSMAN-CIM-sitova spesifikaatio, joita on tuskallisen pitkä seurata. Suurin osa tämän artikkelin sisällöstä on peräisin DMTF-määritysasiakirjoista. Tämä on yritys saada nämä tiedot sulatettaviksi muutamilla esimerkeillä (Linuxissa).
Olen jo lähettänyt valkoisen kirjan SFCB: n ja openwsmanin käytön aloittamisesta osoitteessa https://linux.dell.com/files/whitepapers/WBEM_based_management_in_Linux.pdf. Jos olet uusi WSMAN: ssa ja SFCB: ssä, pdf olisi parempi lähtökohta kuin tämä artikkeli. Kuten yllä olevassa whitepaperissa käsitellään ensisijaisesti openwsman- ja SFCB CIMOM -toteutuksia tässä artikkelissa
Nyt, kun otetaan huomioon WSMAN-palvelin, onko mahdollista luetella kaikki komponentit, joita wsman API voi hallita? Suurin osa WSMAN-palvelimista keskustelee CIMOM: n kanssa taustalla ja paljastaa CIMOM: ien hallintatoiminnot. Tämä tarkoittaa, että WSMAN-palvelimen hallintaominaisuudet riippuvat CIM-palveluntarjoajista, jotka on rekisteröity CIMOM: iin taustalla. CIMOMilla on luontainen toiminto nimellä EnumerateClassNames , jota voidaan kutsua luettelemaan kaikki CIMOMiin rekisteröidyt luokat.
Cause
Resolution
CIMOMin luontainen EnumerateClassNames Funktiota voidaan kutsua seuraavasti: 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>...................
Tulos näyttää samalta kuin yllä, mikä osoittaa, että nimiavaruuden juuressa/cimv2:ssa Linux_Processor on yksi rekisteröidyistä luokista. Useat CIM-luokat periytyvät, kun uusia luokkia rekisteröidään root tai cimv2, ja komento luettelee kaikki nämä luokkien nimet. Yleensä voit ohittaa kaikki luokat CIM_ etuliite. Kaikki luokat Linux_ joilla on etuliite, ovat Linux-järjestelmään asennettujen palveluntarjoajien rekisteröimiä luokkia.
Kun käytät Dellin iDRACia, olet kiinnostunut lähinnä seuraavista kursseista: DCIM_ prefix.
Käytä luokkien nimet -luettelossa getClass Purkutoiminnon avulla Linux_Processor luokan määritelmä seuraavasti:
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
Edellä olevassa komennossa luetellaan kaikki ominaisuudet, jotka on määritetty Linux_Processor paikallisesti. Tarkoittaa mitä tahansa ominaisuutta, joka on peritty muilta CIM_* luokkia ei ole lueteltu nykyisessä toteutuksessa. Luokkamääritykset paljastavat menetelmät, parametrit ja tärkeimmät ominaisuudet, mutta komento palauttaa vain paikalliset ominaisuudet, jolloin keskeisiä ominaisuuksia ei voi tunnistaa. Tämäkin on toteutuksen rajoitus wsmancli.
Vaikka GetClass on hyvä alku, sen tulos ei riitä tunnistamaan avainominaisuuksia get- tai put- tai create- tai custom-toimintojen kutsumiseksi.
Joten mitä muita tekniikoita voidaan käyttää tämän saavuttamiseksi? Tässä laajennetut tuottajajärjestöt voivat auttaa.
Päätepisteviittaus (EPR) on osoitin instanssiin, jossa on kaksi tietoa: ResourceURI ja valitsinsarja. pikanäppäimellä ResourceURI on luokan nimi, josta ilmentymä on luotu, ja valintajoukko luettelee ominaisuudet, joilla ilmentymä voidaan yksilöidä. Tietyn luokan EPR: t voidaan luetella seuraavanlaisella komennolla:
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>
Kaikista kohdejärjestelmän prosessoreista yllä oleva tulos on yhdestä prosessorista.
Resurssin URI näkyy tuloksessa seuraavasti: https://sblim.sourceforge.net/wbem/wscim/1/cim-schema/2/Linux_Processor ja SelectorSet Luettelee seuraavat arvot: __cimnamespace, SystemCreationClassName, SystemName, CreationClassName, and DeviceID. Tämä tarkoittaa kaikkia luokan perittyjä ja paikallisesti määriteltyjä ominaisuuksia) näitä ominaisuuksia voidaan käyttää ilmentymän yksilölliseen tunnistamiseen.
Voit siis odottaa kelvollista vastausta seuraavanlaisesta komennosta:
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
Jos yllä olevassa pyynnössä käytetään muita ominaisuuksia, taustalla oleva CIMOM ei voi tunnistaa esiintymää yksilöllisesti. Jos haluat suorittaa mukautettuja menetelmiä esiintymässä, käytä luokan EPR: ää menetelmän kutsumisen keskeisten ominaisuuksien tunnistamiseen.
Voit luetella myös yhdistyksen EPR: t. Luokan nimen perusteella ei voida selvittää, onko se tavallinen luokan nimi vai yhdistysluokka. Assosiaatioinstanssi viittaa kahteen esiintymään, joten sen EPR sisältää niiden tapausten tai objektien EPR:t, joihin se viittaa. Seuraavassa on esimerkki samasta:
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 Linkit Linux_ComputerSystem ja Linux_Processor, jossa näkyy Suorittimet ovat tietokonejärjestelmissä, yksityiskohtaiset tiedot GroupComponent ja PartComponent osioissa.
Vietin aikaa ymmärtääkseni EPR: itä ja niiden käyttöä instanssien käyttämiseen ajatellen, että se voisi auttaa muita. Voit vapaasti jättää minulle kommenttisi tai ehdotuksesi alla.
Vastuuvapauslauseke:
Yllä oleva artikkeli on tarkoitettu vain tiedoksi. Sisältö on tulkinnastani mainituista tekniikoista ja terminologioista. Nämä tiedot toimitetaan sellaisenaan, ja ne voivat sisältää joitakin kirjoitusvirheitä ja/tai teknisiä epätarkkuuksia.