pretty code

顯示具有 Redfish 標籤的文章。 顯示所有文章
顯示具有 Redfish 標籤的文章。 顯示所有文章

2024年9月4日 星期三

它抓得住我

我算是用 Blog 記錄一些瑣事的人,沒有它我都不會寫程式了,即使到今天,我寫任何程式沒有 Google 我都記不住函數的參數以及順序有哪些?

正所謂凡走過必留下痕跡,吾生平所為未嘗有不可對人言者XD

當然沒事還是不要去看謎片,看完真的空虛呀XD

儘管如此,當初居然未曾想到要替 Blog 搜尋留下統計資料?

沒關係,凡事都不嫌晚,只要開始就好!


老樣子,還是沒變,兵器榜排行第一還是大台北行政區圖?

第二名是很久以前,自己玩 Amazon VM 洗出來的XD

其他文章都是電子書相關的。

值得注意的是,Redfish 居然可以排進前十名,難道是我當初看走眼了嗎?這個東東已經要成為伺服器管理任務中的 Windows 嗎?

2024/09/24 更新

只有數字不會騙人,Redfish 根本沒有成為當紅炸子雞,一切只是我想太多!

2021年9月10日 星期五

Named Capture Group in Golang

一直以為在 Regex 的匹配中,可以將 ( ) 裡面的匹配字串取出來是 Javascript 或是 Python 獨有的功能,導致我之前在取 Redfish 的 @odata.type 時,只能用 strings package 去解決我的問題。

今天才了解這是正規表示法的一部份,想當然爾 Golang 當然是有支援的,其用法如下:

re := regexp.MustCompile(`v([0-9]{1,})_([0-9]{1,})_([0-9]{1,})`)
matches := re.FindStringSubmatch("#EventService.v1_7_1.EventService")
fmt.Println(matches)

[v1_7_1, 1, 7, 1]

我們也可以為這些 Group 取名,例如 (?P<MAJOR>[0-9]{1,}),這樣 MAJOR 便會是這個 Group 的名稱,因為在 Golang 還要多一道手續自己作 mapping,故我覺得在這邊取變數的意義就不大了。

2021年4月8日 星期四

How many servers does a data center have ?

一直對這個數據沒有概念,趁著閱讀各家伺服器說明書的同時,查詢了一下 Google,以下面文章來看,一個數據中心擁有百萬台以上的伺服器應該是有可能的,看起來伺服器管理軟體必然需要多個節點才能管理一個數據中心,而節點本身也是一台伺服器,若以 Intel DCM 可以管理一萬台的官方數據來看,光安裝 Intel DCM 的節點也要超過上百台。

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