pretty code

2020年12月11日 星期五

Redfish 概述

Redfish 是一套標準被設計用來提供簡單且安全的伺服器管理方式。它結合了目前常見的 Web 技術,例如 RESTful API、JSON format 等,目的是讓 IT 可以利用熟悉的工具來達到管理伺服器的目的。

DMTF 是 Redfish 的負責組織,網站上除了有相關技術文件可參考外,其在 Github 上也有提供一些工具,可以在初期學習時邊對照 Spec 邊幫助理解相關的規範說明,底下就簡單介紹我覺得還不錯的兩個工具。

Redfish-Mockup-Server

這是個模擬 Redfish Service 的工具,只要有 mockup 好的假資料,便可以使用瀏覽器來看相關的 Schema 組成。我最早是在 10/8 下載此工具,一開始的 README 根本沒提到哪裡有 mockup 資料可以參考,還好過沒幾天,就在 DMTF 網站上發現對應的資料,其代碼是 DSP2043,最新的檔案裡面包含不只一種的 Redfish Service mockup data,可以隨意選擇一種來使用。

py .\redfishMockupServer.py -H 127.0.0.1 -p 8001 -S -D .\DSP2043_2019.1\public-rackmount1

寫這篇文章時,再度上此工具網站查詢,其 README 已經在 11/11 的 commit 增加了 mockup data 的說明,也提到 DSP2043 的關鍵字,故之後的人就不用像我一樣,還要自己摸索如何使用此工具。

Redfish-Mockup-Creator

目前的 Server 廠商,例如 Intel、Dell、HP 等,其伺服器都有支援 Redfish,如果不是這一兩年內購買的機器,只要廠商有提供 BMC 韌體更新,就可以透過更新韌體的方式來支援 Redfish。像我手邊是一台 5 年前購買的 Dell 機器,更新韌體之後,就有提供 Redfish 界面的管理方式,只要設定好帳號密碼,使用 Python 控制開關機都沒有問題。

這個工具就是用來產生現有 Redfish Service mockup data 用,假設你有想要管理的目標,但可能因為網段等限制不方便存取測試,在開發初期便可以使用這套工具產生一份假資料,配合 Redfish-Mockup-Server,就可以方便理解目標的 Redfish Schema。

此工具也可以把 HTTP Header 儲存起來,甚至是回應時間,故可以更真實的模擬目標。如果想要抓到更完整的資料,記得把目標機器開機,不然有些資料會因為處於關機狀態而不是很完全。

另外,像 Dell 的 Schema 中有包含一些 Windows 不能使用在資料夾的特殊字元,例如冒號等,故在 Windows 下執行 Creator 工具就無法產生這部份的資料,建議還是在 Linux 下執行。

python redfishMockupCreate.py -u root -p xxx -r 192.168.1.100 -S -D my-mockup

沒有留言: