메인 콘텐츠로 이동
  • 빠르고 간편하게 주문
  • 주문 보기 및 배송 상태 추적
  • 제품 목록을 생성 및 액세스
  • 회사 관리를 사용하여 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