WSMAN on valittu Dell iDRACin hallinta-API:ksi. Järjestelmän etähallinnasta tehdään parhaillaan kattavaa ja helppoa. Vietin äskettäin jonkin aikaa WSMAN-protokollan ymmärtämiseen laajennuksen toteuttamiseksi ja alkuperäisen wsman-luettelointitoiminnon jälkeen WSMAN-protokolla muuttuu hieman karvaiseksi. Ei ole helppoa dokumentaatiota/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 tehdä tiedoista helposti sulavia joidenkin esimerkkien avulla (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 / SFCB: ssä, pdf olisi parempi lähtökohta kuin tämä artikkeli. Kuten yllä olevassa valkoisessa kirjassa, käsittelemme tässä artikkelissa ensisijaisesti openwsman- ja SFCB CIMOM -toteutuksia.
Nyt, kun otetaan huomioon WSMAN-palvelin, onko mahdollista luetella kaikki komponentit, joita wsman API hallitsee? 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.
CIMOMin sisäistä
EnumerateClassNames-funktiota voidaan kutsua wsmanclilla seuraavasti:
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. On olemassa useita CIM-luokkia, jotka periytyvät, kun uusia luokkia rekisteröidään root/cimv2-nimitilaan, ja yllä oleva komento luettelee myös kaikki nämä luokkien nimet. Yleensä voit ohittaa kaikki luokat,
joissa on CIM_ etuliite. Kaikki luokat
, joissa on Linux_ etuliite, ovat luokkia, jotka Linux-järjestelmään asennetut palveluntarjoajat rekisteröivät. Dellin idracin kanssa työskennellessäsi olet kiinnostunut lähinnä
kursseista, joissa on DCIM_ etuliite.
Nyt kun sinulla on luettelo kaikista luokkien nimistä, voit purkaa
Linux_Processor luokan määritelmän
getClassin sisäisen funktion avulla 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ä oleva komento luettelee kaikki ominaisuudet, jotka
on määritetty Linux_Processor paikallisesti. Tämä tarkoittaa, että muista
CIM_* -luokista perittyjä ominaisuuksia ei ole lueteltu nykyisessä toteutuksessa. Yleensä luokan määritelmästä voit selvittää, mitä menetelmiä luokassa määritellään, mitkä parametrit on siirrettävä näihin menetelmiin ja mitkä luokan ominaisuudet ovat keskeisiä ominaisuuksia jne. Mutta koska yllä oleva komento palauttaa vain paikalliset ominaisuudet, luokan keskeisiä ominaisuuksia ei voida tunnistaa. Tämä on jälleen tällä hetkellä wsmancli-toteutuksen rajoitus.
Joten vaikka GetClass-funktio on hyvä lähtökohta, sen tulos ei riitä määrittämään, mitä luokan ominaisuuksia voidaan käyttää avainominaisuuksina, jotta get/put/create/custom-toiminto voidaan käynnistää. Joten mitä muita tekniikoita voidaan käyttää tämän saavuttamiseksi? Tässä laajennetut tuottajajärjestöt voivat auttaa.
EPR (End Point Reference) on osoitin esiintymään, jossa on kaksi tietoa: ResourceURI ja Selector Set. ResourceURI:lla on luokan nimi, josta ilmentymä luodaan, ja valitsinjoukossa luetellaan 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 vain yksi prosessori. Tuloksessa resourceURI näkyy muodossa http://sblim.sf.net/wbem/wscim/1/cim-schema/2/Linux_Processor, ja SelectorSet-parametrissa luetellaan arvot __cimnamespace, SystemCreationClassName, SystemName , CreationClassName ja DeviceID. Tämä tarkoittaa, että kaikista Linux_Processor-luokan ominaisuuksista (perityt ja paikallisesti määritetyt) näitä ominaisuuksia voidaan käyttää esiintymä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 pysty tunnistamaan instanssia yksilöllisesti. Vastaavasti, jos esiintymässä on suoritettava joitakin mukautettuja menetelmiä, luokan EPR: ää voidaan käyttää tunnistamaan tärkeimmät ominaisuudet, joilla menetelmä käynnistetään.
Voit luetella myös yhdistyksen EPR: t. Luokan nimen perusteella ei voida selvittää, onko se tavallinen luokan nimi vai yhdistysluokka. Koska yhdistyksen esiintymässä on viitteitä kahteen esiintymään, yhdistyksen EPR:llä on niiden esiintymien/objektien EPR:t, joihin yhdistys 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 on
Linux_ComputerSystem - ja
Linux_Processor-luokkien välinen yhteys, joka muodostaa suhteen siihen, että suorittimet sisältyvät tietokonejärjestelmiin ja siten GroupComponent- ja PartComponent-osiin.
Minun piti viettää jonkin aikaa EPR: ien selvittämiseen ja siihen, miten niitä voidaan käyttää yksittäisten tapausten käyttämiseen, ajattelin, että siitä voisi olla hyötyä muille. Voit vapaasti jättää minulle kommenttisi / ehdotuksesi alla.
Vastuuvapauslauseke:
Yllä oleva artikkeli on tarkoitettu vain tiedoksi. Sisältö on tulkinnastani mainituista tekniikoista/terminologioista. Nämä tiedot toimitetaan sellaisenaan, ja ne voivat sisältää joitakin kirjoitusvirheitä ja/tai teknisiä epätarkkuuksia.