DMTF Redfish API ' larını kullanarak sistemi yönetme

eBMCtabanlı sistemler, DMTF Redfish API ' ları kullanılarak yönetilebilir.

Genel Bakış

Redfish, platform yönetimi için kullanılan ve Distributed Management Task Force, Inc. tarafından standartlaştırılan bir REST API 'dir. (http://www.dmtf.org/standards/redfish).

Redfish, platform yönetimi görevlerinin güvenli ve modern programlama paradigmaları kullanılarak geliştirilen istemci komut dosyaları tarafından kontrol edilmesine olanak sağlar.

Redfish API 'si, daha iyi güç kullanımı için ayarlanabilir parametrelerin sağlanmasına olanak sağlar.

IBM® eBMCtabanlı sistemler, sistem yönetimi için DMTF Redfish API 'sini (DSP0266, sürümü 1.12.0 18 Ocak 2021 'de yayınlanmıştır) destekler.

JSON biçimindeki Redfish şema dosyalarının bir kopyası DMTF (http://redfish.dmtf.org/schemas/v1/) tarafından yayınlanır ve sabit yazılım görüntüsünde paketlenir.

Yongada dağıtılan şema dosyaları, geniş alan ağı (WAN) bağlantısı olmayan dağıtımlarda API ' lerin düzgün çalışmasını sağlar.

Not: Redfish API 'si varsayılan olarak etkindir ve Redfish hizmeti kullanıcı tarafından etkinleştirilemez ya da devre dışı bırakılamaz.

Sabit yazılım düzeyleri

eBMCtabanlı sistemler, FW1020ya da sonraki sabit yazılım düzeyinde Redfish API ' lerini destekler.

eBMCtabanlı sunucularda Redfish için iletişim önkoşulları

Geçerli sabit yazılım düzeyine ve ağ dağıtımına bağlı olarak aşağıdaki önkoşul görevlerini tamamlayın:
  • Sunucu sabit yazılım düzeyini FW1020ya da daha sonraki bir düzeye büyütün.
  • eBMCIP adresini tanımlayın.
  • cURL (https://curl.haxx.se/) yöntemini, Uniform Resource Indicator (URI) değerini ve istek gövdesini, Redfish hizmetiyle iletişim kurmak için parametre olarak kurun ve çalıştırın.
  • İstemci sistemine Python kurun (genellikle bir Linux® anasistemi).
  • İsteğe bağlı olarak, DMTF Redfishtool olanağını kurun ve çalıştırın (https://github.com/DMTF/Redfishtool).

Redfish hizmetiyle etkileşim

Redfish hizmetiyle etkileşim kurmak için aşağıdaki adımları tamamlayın.
  1. Kimliği doğrulanmış bir oturum açma oturumu oluşturun ( /redfish/v1/SessionService/Sessions kaynağında POST yöntemi).
  2. Aşağıdaki ayrıntıları çıkarın ve saklayın:
    • Kimlik doğrulama simgesi (yanıtın X-Auth-Token üstbilgisinde bulunur)
    • Oturum URI 'si (yanıtın Konum üstbilgisinde bulunur)
  3. Bir kaynağın özelliklerini okumak için, kaynağın URI 'sine ilişkin X-Auth-Token üstbilgisiyle bir GET isteği gönderin.
  4. Bir kaynağın özelliğini ayarlamak için, kaynağın URI 'si, özellik adı, tipi ve JSON gövdesi olarak kodlanmış değer için X-Auth-Token üstbilgisiyle bir PATCH isteği gönderin.
  5. JSON gövdesini içeren Redfish hizmetinden yanıtı çıkarın ve ayrıştırın.

Redfish hizmeti giriş sayfası URI 'si

Redfish hizmeti giriş sayfası URI 'sine (hizmet ROOT olarak da bilinir) şu URI alınarak erişilebilir: https://<ip:port>/redfish/v1. Bu URI ' ye verilen yanıt, bir hypermedia API paradigması kullanarak Redfish hizmetinin geçmesini sağlayan üst düzey bir site haritasıdır.

Redfish hizmetinin döndürdüğü verilerin yorumlanması

Verilerin biçimi ve yapısı şema dosyalarında tanımlanır. Şema dosyaları, Redfish hizmeti tarafından gönderilen verileri açıklayan JSON dosyalarıdır. Redfish hizmeti tarafından gönderilen verileri anlamak ve Redfish hizmeti tarafından gönderilen yanıtı doğrulamak için şema dosyalarını kullanabilirsiniz.

Şema dosyalarının konumu

DMTF, Redfish 'te kullanılan standart verilere ilişkin şema dosyalarını yayınlar.

JSON biçimindeki Redfish şema dosyaları, http://redfish.dmtf.org/schemas/v1/ adresindeki DMTF şema havuzunda barındırılır.

Desteklenen şema dosyaları

eBMCtabanlı sistemler için aşağıdaki şema dosyaları desteklenir. Bu liste, SQL kitaplıklarını içermez.

  • AccountService
  • İşlem Bilgileri
  • Düzenekler
  • AttributeRegistry
  • BIOS
  • Sertifika
  • CertificateLocations
  • CertificateService
  • Şasi
  • ComputerSystem
  • Sürücüsü
  • EnvironmentMetrics
  • EthernetInterface
  • Olay
  • EventDestination
  • EventService
  • FabricAdapter
  • Fan
  • JsonSchemaDosyası
  • Lisans
  • LicenseService
  • LogEntry
  • LogService
  • Yönetici
  • ManagerAccount
  • ManagerNetworkİletişim Kuralı
  • Bellek
  • İleti
  • MessageRegistry
  • MessageRegistryDosyası
  • MetricDefinition
  • MetricReport
  • MetricReportTanımlaması
  • PCIeDevice
  • PCIeSlots
  • Kapı
  • PowerSubsystem
  • PowerSupply
  • PowerSupplyÖlçümleri
  • PrivilegeRegistry
  • İşlemci
  • Görev
  • Algılayıcı
  • ServiceRoot
  • Oturum
  • SessionService
  • SoftwareInventory
  • Depolama Olanağı
  • Görev
  • TaskService
  • TelemetryService
  • ThermalSubsystem
  • UpdateService
OEM
  • OemAssembly
  • OemChassis
  • OemComputerSistemi
  • OemLogGirişi
  • OemLogEntryAttachment
  • OemManager
  • OemManagerHesabı
  • OemCPCIeAygıtı
  • OemPCIeYuvaları
  • OemPowerSupplyMetrics
  • OemServiceKök
  • OemSession
  • OemUpdateHizmeti

cURL komutunu kullanarak Redfish hizmetinde ortak sistem yönetimi işlevlerine erişilmesi

Aşağıdaki örneklerde, eBMC Redfish API ' ları tarafından desteklenen ortak işlevlere erişmek için kullanılabilecek istemci URL (cURL) komutları gösterilmektedir:
Not: Tüm cURL komutlarında, ${BMC} eBMC' nin IP adresi, < kullanıcıadı> eBMC hesabının adı ve < parola> eBMC hesabının parolasıdır.
  • Ana kaynak gruplarını görüntülemek için aşağıdaki komutları çalıştırın:
    • Gövde toplama:
      curl -u <username>:<password> -k -s  https://${BMC}/redfish/v1/Chassis
    • Yönetici derlemi:
      curl -u <username>:<password> -k -s  https://${BMC}/redfish/v1/Managers
    • Sistem toplama:
      curl -u <username>:<password> -k -s  https://${BMC}/redfish/v1/Systems
  • Gövde, yönetici ve sistem kaynaklarını görüntülemek için aşağıdaki komutları çalıştırın:
    • Gövde kaynağı:
      curl -u <username>:<password> -k -s  https://${BMC}/redfish/v1/Chassis/chassis
    • Yönetici kaynağı:
      curl -u <username>:<password> -k -s  https://${BMC}/redfish/v1/Managers/bmc
    • Sistem kaynağı:
      curl -u <username>:<password> -k -s  https://${BMC}/redfish/v1/Systems/system
  • Anasistem güç denetimi işlemlerini gerçekleştirmek için aşağıdaki komutları çalıştırın:
    • Anasistem gücü açık:
      curl -u <username>:<password> -k -s -X POST https://${BMC}/redfish/v1/Systems/system/Actions/ComputerSystem.Reset -d '{"ResetType": "On"}'
    • Anasistem yumuşak güç kapalı:
      curl -u <username>:<password> -k -s -X POST https://${BMC}/redfish/v1/Systems/system/Actions/ComputerSystem.Reset -d '{"ResetType": "GracefulShutdown"}'
    • Anasistem sabit güç kapalı:
      curl -u <username>:<password> -k -s -X POST https://${BMC}/redfish/v1/Systems/system/Actions/ComputerSystem.Reset -d '{"ResetType": "ForceOff"}'
    • Anasistemi yeniden başlat:
      curl -u <username>:<password> -k -s -X POST https://${BMC}/redfish/v1/Systems/system/Actions/ComputerSystem.Reset -d '{"ResetType": "GracefulRestart"}'
  • Günlük kaynağını görüntülemek için aşağıdaki komutu çalıştırın:
    curl -u <username>:<password> -k -s https://${BMC}/redfish/v1/Systems/system/LogServices/EventLog/Entries
  • Algılayıcı kaynaklarını görüntülemek için aşağıdaki komutları çalıştırın:
    • PowerSubsystem kaynağı:
      curl -u <username>:<password> -k -s https://${BMC}/redfish/v1/Chassis/chassis/PowerSubsystem
    • ThermalSubsystem kaynağı:
      curl -u <username>:<password> -k -s https://${BMC}/redfish/v1/Chassis/chassis/ThermalSubsystem
    • Algılayıcı kaynağı:
      curl -u <username>:<password> -k -s https://${BMC}/redfish/v1/Chassis/chassis/Sensors
  • Döküm kaynaklarını görüntülemek için aşağıdaki komutları çalıştırın:
    • Bellek kaynağı:
      curl -u <username>:<password> -k -s https://${BMC}/redfish/v1/Systems/system/Memory
    • İşlemci kaynağı:
      curl -u <username>:<password> -k -s https://${BMC}/redfish/v1/Systems/system/Processors
    • Güç kaynağı 0 kaynağı:
      curl -u <username>:<password> -k -s https://${BMC}/redfish/v1/Chassis/powersupply0
    • Güç kaynağı 1 kaynağı:
      curl -u <username>:<password> -k -s https://${BMC}/redfish/v1/Chassis/powersupply1
  • Sabit yazılımı güncellemek için aşağıdaki komutları çalıştırın:
    • Sisteminizdeki bir resim dosyasını kullanarak:
      curl -u <username>:<password> -curl k -s  -H "Content-Type: application/octet-stream" -X POST -T <image file path> https://${BMC}/redfish/v1/UpdateService
  • Yeni bir yerel hesap oluşturmak için şu komutu çalıştırın:
    • curl -u <username>:<password> -k -s -X POST https://${BMC}/redfish/v1/AccountService/Accounts/ -d '{"UserName": "admin", "Password": "NEWPASSWORD", "RoleId": "Administrator"}'
      Burada admin , yaratmak istediğiniz kullanıcının adı, NEWPASSWORD yeni paroladır ve RoleId , ayrıcalık rolüyle eşlenir.
  • Hesap parolasını değiştirmek için aşağıdaki komutu çalıştırın:
    • curl -u <username>:<password> -k -s -X POST https://${BMC}/redfish/v1/AccountService/Accounts/admin -d '{"Password": "NEWPASSWORD"}'
      Burada admin hesap adı ya da kullanıcı kimliği, NEWPASSWORD ise yeni paroladır.

Kullanıcı adı, parola ya da rol seçme hakkında daha fazla bilgi için bkz. Kullanıcı yönetimi.

Redfish hizmetiyle etkileşim

Redfish hizmetiyle etkileşim kurmak için aşağıdaki kimlik doğrulama seçeneklerinden adımları tamamlayın:

Belirteç tabanlı kimlik doğrulaması
  1. Kimliği doğrulanmış bir oturum açma oturumu oluşturun ( /redfish/v1/SessionService/Sessions kaynağında POST yöntemi).
    • Örneğin:
      curl -k -H "Content-Type: application/json" -X POST -D headers.txt https://${bmc}/redfish/v1/SessionService/Sessions -d '{"UserName":"admin","Password":"admin"}'
  2. Aşağıdaki ayrıntıları çıkarın ve saklayın:
    • Kimlik doğrulama simgesi (yanıtın X-Auth-Token üstbilgisinde bulunur). Örneğin, yukarıdaki header.txt dosyasında export bmc_token=<token>.
    • Oturum URI 'si (yanıtın konum üstbilgisinde bulunur).
  3. Bir kaynağın özelliklerini okumak için, kaynağın URI 'sine ilişkin X-Auth-Token üstbilgisiyle bir GET isteği gönderin.
    • Örneğin:
      curl -k -H "X-Auth-Token: $token" https://${bmc}/redfish/v1/Chassis
  4. Bir kaynağın özelliğini ayarlamak için, kaynağın URI 'si, özellik adı, tipi ve JSON gövdesi olarak kodlanmış değer için X-Auth-Token üstbilgisiyle bir PATCH isteği gönderin.
    • Örneğin:
      curl -k -H "X-Auth-Token: $token" -H "Content-Type: application/json" -X PATCH https://${bmc}/redfish/v1/Managers/bmc/NetworkProtocol -d '{"NTP":{"ProtocolEnabled": true}}'
  5. JSON gövdesini içeren Redfish hizmetinden yanıtı çıkarın ve ayrıştırın.

Temel doğrulama

  1. İsteğin bir parçası olarak kullanıcı adını ve parolayı iletmek için aşağıdaki komutu çalıştırın:
    • curl -u <username>:<password> -k -s  https://${BMC}/redfish/v1/SessionService