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.
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ı
- 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
- Kimliği doğrulanmış bir oturum açma oturumu oluşturun ( /redfish/v1/SessionService/Sessions kaynağında POST yöntemi).
- 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)
- Bir kaynağın özelliklerini okumak için, kaynağın URI 'sine ilişkin X-Auth-Token üstbilgisiyle bir GET isteği gönderin.
- 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.
- 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
- 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
- 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 toplama:
- 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
- Gövde kaynağı:
- 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"}'
- Anasistem gücü açık:
- 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
- PowerSubsystem kaynağı:
- 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
- Bellek kaynağı:
- 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
- Sisteminizdeki bir resim dosyasını kullanarak:
- Yeni bir yerel hesap oluşturmak için şu komutu çalıştırın:
Buradacurl -u <username>:<password> -k -s -X POST https://${BMC}/redfish/v1/AccountService/Accounts/ -d '{"UserName": "admin", "Password": "NEWPASSWORD", "RoleId": "Administrator"}'
admin
, yaratmak istediğiniz kullanıcının adı,NEWPASSWORD
yeni paroladır veRoleId
, ayrıcalık rolüyle eşlenir.
- Hesap parolasını değiştirmek için aşağıdaki komutu çalıştırın:
Buradacurl -u <username>:<password> -k -s -X POST https://${BMC}/redfish/v1/AccountService/Accounts/admin -d '{"Password": "NEWPASSWORD"}'
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:
- 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"}'
- Örneğin:
- 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).
- Kimlik doğrulama simgesi (yanıtın X-Auth-Token üstbilgisinde bulunur). Örneğin, yukarıdaki header.txt dosyasında
- 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
- Örneğin:
- 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}}'
- Örneğin:
- JSON gövdesini içeren Redfish hizmetinden yanıtı çıkarın ve ayrıştırın.
Temel doğrulama
- İ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