初识Redfish
背景
第一章 初識Redfish
剛步入工作,正在學習Redfish規范,記錄下來方便自己回看,也歡迎評論留言一起學習,共同進步~
參考鏈接:redfish 2.1.8
目錄
- 背景
- 前言
- 一、Redfish是什么?
- 二、使用步驟
- 1.引入庫
- 2.創建一個Redfish對象
- 3.登錄服務器
- 4.執行一個Get操作
- 5.運行截圖
- 6.結果分析
- 總結
前言
IPMI(智能平臺管理接口),它是一種嵌入式功能,同時也是工業標準,由英特爾與戴爾、惠普和NEC合作開發,可實現對服務器的遠程控制。但是這種規范也有它的局限性,層出不窮的安全問題使得它自從2015年更新2.0后沒有再翻新,與此同時Redfish興起。
一、Redfish是什么?
Redfish是由分布式管理任務組(DMTF)發布的開放式行業標準規范,旨在對平臺硬件進行現代化和安全的管理,是一種管理標準,在超媒體RESTful接口中使用數據模型表示。它是一個超媒體API,所以它能夠通過一個一致的接口來表示各種實現。它有管理數據中心資源、處理事件、長期任務和發現的機制。
二、使用步驟
1.引入庫
代碼如下:
import redfish2.創建一個Redfish對象
Redfish對象包含3個參數:目標安全URL(即“ https:// IP ”或“ https:// XYZT ”),用戶名及其密碼。另外還有兩個可選參數:超時(連接初始化超時之前的秒數)和max_retry(超時后請求將重試多少次)。如果未設置,則這些默認值分別為“無”和“ 10”。要創建Redfish對象,需調用redfish_client方法。
代碼如下:
注:這里login_host是一個安全的URL,“板子”的id,賬戶和密碼如’admin’,‘admin’
3.登錄服務器
創建REDFISH_OBJ時執行登錄操作。您可以繼續進行基本身份驗證,但是它的安全性較低。
REDFISH_OBJ.login(auth="session")4.執行一個Get操作
可以執行簡單的GET操作來獲取任何有效路徑中存在的數據。下面顯示了路徑“ / redfish / v1 / systems / 1”上的rawget操作示例:
response = REDFISH_OBJ.get("/redfish/v1/systems/1", None)5.運行截圖
6.結果分析
整體運行結果是200,說明是進入“板子”,成功執行了get操作。但是error信息說資源無效,資源未找到,解決辦法是置一個有效的資源或者更正URI并重新提交請求。URI是沒有問題的,原因在于資源結構/redfish/v1/systems/1并沒有去構建,當然也取不到資源了。
另外base_url參數200的ID是xx.xx.xx.xx/#blabla這樣的格式,如果直接填寫我的“板子”的ID,如格式xx.xx.xx.xx,會報錯如下:
這里報錯401,一般是用戶權限未授予導致的代碼無執行權限而失效或出錯,因為id,用戶密碼都是沒有問題的,所以不太明白,歡迎大佬解答。
總結
以上就是今天要講的內容,本文僅僅簡單介紹了Redfish的一個簡單的get操作。
總結
- 上一篇: iOS架构-cocoaPods之Podf
- 下一篇: comps电磁场模拟软件_电力系统仿真软