メイン コンテンツに進む
  • すばやく簡単にご注文が可能
  • 注文内容の表示、配送状況をトラック
  • 会員限定の特典や割引のご利用
  • 製品リストの作成とアクセスが可能
  • 「Company Administration(会社情報の管理)」では、お使いのDell EMCのサイトや製品、製品レベルでのコンタクト先に関する情報を管理できます。

Numaralandırmanın ötesinde WSMAN'ı keşfetme

概要: Dell TechCenter'da Dell İşletim Sistemi ve Uygulama Çözümleri - Project Sputnik, Microsoft Windows, Red Hat Linux, SUSE, Ubuntu ve daha fazlası

この記事は自動翻訳されたものである可能性があります。品質に関するフィードバックがある場合は、このページの下部にあるフォームを使用してお知らせください。

文書の内容


現象

WSMAN, Dell iDRAC için seçilen yönetim API'sidir ve uzaktan sistem yönetimini mümkün olduğunca kapsamlı ve kolay hale getirmek için geniş kapsamlı çalışmalar yürütülmektedir. Yakın zamanda bir süre WSMAN protokolünü anlamaya çalıştım ve ilk wsman numaralandırma işleminden sonra WSMAN protokolü biraz karmaşıklaşıyor. Doğru ana özelliklerle get/put/create/delete/custom İşlemlerinin nasıl çağrılacağı konusunda kolay bir belge/örnek yok.  Bu bilginin birincil kaynağı, takip etmek için fazla uzun olan DMTF'nin WSMAN teknik özelliği ve WSMAN-CIM bağlantısı teknik özelliğidir. Yine bu makale içeriğinin çoğunluğu DMTF teknik özellik belgelerinden gelmektedir. Burada bu bilgileri (Linux üzerinde) bazı örneklerle kolay anlaşılır bir hale getirmeye çalışıyorum.

 SFCB ve openwsman kullanmaya başlama hakkında paylaştığım teknik rapora şuradan ulaşabilirsiniz: https://linux.dell.com/files/whitepapers/WBEM_based_management_in_Linux.pdf. WSMAN/SFCB konusunda yeniyseniz söz konusu pdf dosyası bu makaleden daha iyi bir başlangıç noktası olacaktır. Yukarıdaki teknik raporda olduğu gibi, bu makalede de öncelikle openwsman ve SFCB CIMOM uygulamalarıyla ilgileneceğiz.

 Bir WSMAN sunucusu için wsman API'siyle yönetilebilecek tüm bileşenleri listelemenin bir yolu var mıdır? WSMAN sunucularının çoğu arka uçta bir CIMOM ile iletişim kurar ve CIMOM'ların yönetim işlevlerini açığa çıkarır. Bunun anlamı, bir WSMAN sunucusunun yönetim özelliklerinin arka uçta CIMOM'a kayıtlı CIM sağlayıcılarına bağlı olduğudur. CIMOM'da, CIMOM'a kayıtlı tüm sınıfları listelemek için çağrılabilecek, EnumerateClassNames adında yerleşik bir işlev vardır.

原因

WSMAN özelliğinde EnumerateClassNames için bire bir eşleme olmadığından, bu yöntem WSMAN'deki diğer özel işlevler gibi çağrılır. Lütfen bunun uygulamaya özel olduğunu ve wsmancli'nin uygulanması için geçerli olduğunu unutmayın. Gelecek sürümlerde bu farklı olabilir veya güncelleştirilebilir.

解決方法

CIMOM'un yerleşik EnumerateClassNames işlevi, wsmancli ile şu şekilde çağrılabilir:
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>...................
 
Çıktı yukarıdaki gibi görünür ve root/cimv2 ad alanında Linux_Processor öğesinin kayıtlı sınıflardan biri olduğunu gösterir. root/cimv2 ad alanına yeni sınıflar kaydedildiğinde devralınan bir dizi CIM sınıfı olur ve yukarıdaki komut tüm bu sınıf adlarını da listeler. Genel bir kural olarak, ön eki CIM_ olan tüm sınıfları yok sayabilirsiniz. Linux_ ön ekine sahip tüm sınıflar, bir Linux sistemine yüklenen sağlayıcılar tarafından kaydedilen sınıflardır. Dell idrac ile çalışırken çoğunlukla ön eki DCIM_ olan sınıflarla ilgilenirsiniz.

 Artık elinizde tüm sınıf adlarının listesi olduğuna göre, getClass yerleşik işlevini kullanarak Linux_Processor sınıfının tanımını aşağıdaki gibi ayıklayabilirsiniz:
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
 
 Yukarıdaki komut, Linux_Processor içerisinde yerel olarak tanımlanan tüm özellikleri listeler. Diğer CIM_* sınıflarından devralınan diğer hiçbir özelliğin mevcut uygulamayla listelenmediğini ifade eder. Genellikle bir Sınıfın tanımından sınıfta hangi yöntemlerin kullanıldığını, bu yöntemlere hangi parametrelerin iletilmesi gerektiğini ve sınıfın hangi özelliklerinin önemli özellikler olduğunu vb. anlayabilirsiniz. Ancak yukarıdaki komut yalnızca Yerel özellikleri döndürdüğünden, sınıftaki ana özellikler tespit edilemez. Şu anda bu da wsmancli'deki bir uygulama sınırlamasıdır.

Dolayısıyla, GetClass işlevi iyi bir başlangıç noktası olsa da; çıktısı, get/put/create/custom eyleminin çağrılabilmesi için sınıfın hangi özelliklerinin ana özellikler olarak kullanılabileceğini belirlemede yeterli değildir. Bu durumda, bunu gerçekleştirmek için diğer hangi teknikler kullanılabilir? EPR'ler bu noktada yardımcı olabilir.


EPR (Uç Nokta Referansı); ResourceURI ve Seçici Kümesi olmak üzere iki parça bilgi içeren bir örnek işaretçisidir. ResourceURI, örneğin kendisinden oluşturulduğu sınıf adını içerir ve Seçici Kümesi, bir örneğin benzersiz bir şekilde tanımlanması için kullanılan özellikleri listeler. Belirli bir sınıftaki EPR'ler şuna benzer bir komutla numaralandırılabilir:
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>
 Hedef sistemdeki tüm işlemciler arasından, yukarıdaki çıktı yalnızca bir işlemciye aittir. Çıktıda resourceURI http://sblim.sf.net/wbem/wscim/1/cim-schema/2/Linux_Processor olarak listelenir ve SelectorSet; __cimnamespace,  SystemCreationClassName, SystemName, CreationClassName ve DeviceID öğelerini listeler. Bunun anlamı, Linux_Processor sınıfındaki tüm özellikler (devralınan ve yerel olarak tanımlanan) arasından bu özelliklerin bir örneği benzersiz bir şekilde tanımlamak için kullanılabileceğidir.

 Dolayısıyla, şunun gibi bir komuttan geçerli bir yanıt bekleyebilirsiniz:
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
 Yukarıdaki istekte başka özellikler kullanılırsa arka uçtaki CIMOM bir örneği benzersiz bir şekilde tanımlayamaz. Benzer şekilde, örnek olarak çalıştırılması gereken özel yöntemler olursa bir yöntemi çağırmak için kullanılabilecek ana özellikleri belirlemek için sınıfın EPR'si kullanılabilir.

Bir ilişkilendirmenin EPR'lerini de numaralandırabilirsiniz. Bir sınıf adı verildiğinde, bunun standart bir Sınıf adı mı, ilişkilendirme sınıfı mı olduğu anlaşılamaz. Bir ilişkilendirme örneğinin iki örneğe iki işaretçisi olduğundan, bir ilişkilendirme EPR'sinde, ilişkilendirmenin başvurduğu örneklerin/nesnelerin EPR'leri olur. Bunun bir örneği aşağıda verilmiştir:
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 ve Linux_Processor sınıfları arasında, İşlemcilerin Bilgisayar Sistemlerinde ve dolayısıyla GroupComponent ve PartComponent bölümlerinde yer aldığı ilişkisini kuran bir ilişkilendirmedir.

Diğerlerinde de işe yarayabileceğini düşünerek bir süre EPR'leri ve bunların ayrı ayrı örneklere erişmek için nasıl kullanılabileceğini anlamaya çalıştım. Yorumlarınızı/önerilerinizi aşağıya bırakabilirsiniz.

Sorumluluk reddi:

Yukarıdaki makale yalnızca bilgilendirme amaçlıdır. İçeriği, söz konusu teknolojilerin/terminolojilerin tarafımca yorumlanmasına dayalıdır. Bu bilgiler olduğu gibi verilmiştir ve yazım hataları ve/veya teknik hatalar içerebilir.

文書のプロパティ


影響を受ける製品

Ubuntu Server LTS

最後に公開された日付

11 6月 2024

バージョン

4

文書の種類

Solution