PowerEdge:列挙を超えたWSMANの詳細
Summary: Dell TechCenterのDell OSおよびアプリケーション ソリューション - Project Sputnik、Microsoft Windows、Red Hat Linux、SUSE、Ubuntu、その他
Symptoms
のWSMANプロトコルを調べた後、最初の列挙アクションの後に複雑になることがわかりました。適切なキープロパティを使用してget/put/create/delete/customアクションを呼び出す方法に関するドキュメントや例はありません。この情報の主なソースは、DMTFのWSMAN仕様とWSMAN-CIMバインディング仕様であり、どちらも苦痛なほど長い資料です。繰り返しになりますが、この記事の内容のほとんどは、DMTF仕様ドキュメントに基づいています。これは、その情報をいくつかの例(Linuxの場合)でダイジェストする試みです。
SFCBとopenwsmanを使い始める方法に関するホワイトペーパーは、次の場所に既に掲載されています。 https://linux.dell.com/files/whitepapers/WBEM_based_management_in_Linux.pdf。WSMAN と SFCB を初めて使用する場合は、この記事よりも pdf の方が開始点として適しています。上記のホワイトペーパーと同様に、この記事では主にopenwsmanとSFCB CIMOMの実装を扱います
さて、WSMANサーバーが与えられた場合、wsman APIで管理可能なすべてのコンポーネントを一覧表示する方法はありますか? ほとんどのWSMANサーバーは、バックエンドのCIMOMと通信し、CIMOMの管理機能を公開します。つまり、WSMANサーバーの管理機能は、バックエンドのCIMOMに登録されているCIMプロバイダーに依存します。CIMOMには、EnumerateClassNamesという名前の組み込み関数が定義されており、この関数を呼び出すと、CIMOMに登録されているすべてのクラスが一覧表示されます。
Cause
Resolution
CIMOMのイントリンシック EnumerateClassNames 関数は次のように呼び出すことができます。 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>...................
出力は前掲のようになり、名前空間root/cimv2で Linux_Processor は、登録されているクラスの 1 つです。新しいクラスが に登録されると、いくつかの CIM クラスが継承されます root または cimv2をクリックすると、コマンドはこれらすべてのクラス名を一覧表示します。通常、すべてのクラスは CIM_ プレフィックスで変更した後の画面です。プレフィックスがLinux_のすべてのクラスは、Linuxシステムにインストールされているプロバイダーによって登録されたクラスです
DellのiDRACを使用する際に最も関心があるのは DCIM_ prefix。
クラス名リストでは、 getClass 関数を抽出し、 Linux_Processor クラス定義は次のとおりです。
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
上記のコマンドは、で定義されているすべてのプロパティを一覧表示します Linux_Processor ローカルで。つまり、他のものから継承されたプロパティのいずれか CIM_* クラスは、現在の実装ではリストされていません。クラス定義では、メソッド、パラメーター、およびキー プロパティが表示されますが、コマンドはローカル プロパティのみを返すため、キー プロパティは識別できません。繰り返しますが、これは実装上の制限です。 wsmancli.
一方、 GetClass は良いスタートですが、その出力は、GET、PUT、CREATE、またはカスタムアクションを呼び出すための主要なプロパティを識別するのに十分ではありません
では、これを実現するために他にどのような手法を使用できますか? そこで役立つのがEPRです
エンドポイント参照 (EPR) は、次の 2 つの情報を持つインスタンスへのポインターです。 ResourceURI とセレクタセット。『オペレーティングシステム』ディスクはオプションなので、同梱されていないコンピューターもあります。 ResourceURI にはインスタンスの作成元のクラス名があり、セレクタセットにはインスタンスを一意に識別できるプロパティが一覧表示されます。特定のクラスのEPRは、次のようなコマンドで列挙できます。
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>
ターゲット システムのすべてのプロセッサーのうち、上記の出力は1つのプロセッサーのものです。
出力では、resourceURIは次のように一覧表示されます。 https://sblim.sourceforge.net/wbem/wscim/1/cim-schema/2/Linux_Processor + SelectorSet に、次の値を示します。 __cimnamespace, SystemCreationClassName, SystemName, CreationClassName, and DeviceID。これは、クラス内のすべてのプロパティが継承され、ローカルに定義されていることを意味します) これらのプロパティを使用して、インスタンスを一意に識別できます。
したがって、次のようなコマンドから有効な応答が期待できます。
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
上記の要求で他のプロパティが使用されている場合、バックエンドのCIMOMはインスタンスを一意に識別できません。インスタンスでカスタム・メソッドを実行するには、クラスの EPR を使用して、メソッド呼び出しのキー・プロパティーを識別します。
また、アソシエーションのEPRを列挙することもできます。クラス名が与えられると、それが標準のクラス名なのか、アソシエーション クラスなのかを判断できません。関連インスタンスは 2 つのインスタンスを指すため、その EPR には、参照するインスタンスまたはオブジェクトの EPR が含まれます。次に、同じ例を示します。
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 リンク Linux_ComputerSystem と Linux_Processor、プロセッサがコンピュータシステムに搭載されていることを示す、詳細 GroupComponent と PartComponent セクション.
私は、EPRとインスタンスにアクセスするためのEPRの使用を理解するのに時間を費やし、他の人に役立つかもしれないと考えました。以下にコメントや提案を残してください
免責事項:
上記の記事は情報提供のみを目的としています。内容は、言及された技術と用語の私の解釈によるものです。この情報は現状のまま提供され、誤字脱字や不正確な技術情報が含まれている場合があります。