2022年2月8日 星期二

Redfish模型工具:Redfish Mockup Creator 和 Redfish Mockup Server

 (*如果之後架構有變,這邊不會更新) 

GitHub - DMTF/Redfish-Mockup-Creator: A Python3 program that creates a Redfish Mockup folder structure from a real live Redfish service.

GitHub - DMTF/Redfish-Mockup-Server: A simple Python 3.4 program that can be copied into a folder at the top of any Redfish mockup and can serve Redfish requests on the specified IP/port.

以上兩個tool都是由DMTF開發的,Redfish Mockup Creator 可以去對Redfish Services 作mockup,而Redfish Mockup Server 我對它的定位在模擬器(emulator),可以餵給它指定的Redfish mock,Server跑起來之後可以對它請求 GET method

然後Mockup Creator 真的很方便,現在突然想看哪個Resource的Response,直接就能找到


Redfish Mockup Creator

Redfish Mockup Creator 是一個對Redfish Service 作mockup 的工具,先看一下執行結果


安裝和執行的方式可以分為本機系統,或是使用docker,這邊我推薦使用docker,因為可以解決環境問題,像我的作業系統是ubuntu 18 就沒辦法執行

Native system example (本機系統示例)

從git下載 

git clone https://github.com/DMTF/Redfish-Mockup-Creator.git

執行(如果預設ptyhon版本不是3的話,python 要改成python3)

python redfishMockupCreate.py -u root -p root -r 192.168.1.100 -S -D /home/user/redfish-mockup


Docker container example (Docker 容器示例)

  • 安裝,要作為 Docker 容器運行,請使用以下操作之一來拉取或構建容器:(選一個做就好,我選第一個)

    • Pull the container from Docker Hub:

docker pull dmtf/redfish-mockup-creator:latest

    • Build a container from local source:

docker build -t dmtf/redfish-mockup-creator:latest .

    • Build a container from GitHub:

docker build -t dmtf/redfish-mockup-creator:latest https://github.com/DMTF/Redfish-Mockup-Creator.git

  • 執行,此命令使用指定的模型運行容器,其中 <path-to-mockup> 是模型目錄的路徑:

docker run --rm --user="$(id -u):$(id -g)" -v <path-to-mockup>:/mockup dmtf/redfish-mockup-creator:latest -u root -p root -r 192.168.1.100 -S

如果想要檔案mount到本地端,可以前面有加上絕對目錄 ${PWD} ,例如 ${PWD}/mockup_iris 成功之後可以在本地端看到資料夾mockup_iris,底下是我執行的指令

 $ docker run --rm  -v  ${PWD}/mockup_iris:/mockup dmtf/redfish-mockup-creator:latest -u root -p 0penBmc -r 192.168.0.123 -S
 $ ls
mockup_iris

用GUI 看一下結果


最後回頭看一下About,翻譯後是

Redfish Mockup Creator 是一個從live Redfish Service創建 Redfish 模型的工具。 創建的模型可以與 Redfish Mockup Server 一起使用。

那Redfish Mockup Server 是什麼呢?


Redfish Mockup Server

官方描述

Redfish Mockup Server 針對 Redfish 模型提供 Redfish 請求。 服務器在指定的 IP 地址和端口或默認 IP 地址和端口 127.0.0.1:8000 上運行。

簡單來說就是一個模擬器,可以餵給它指定的模型(Redfish Mockup),Server跑起來之後可以對它請求(request) GET method

例如,先指定模型是剛剛的mockup_iris,執行後可以對Server 下 GET method,它會回傳剛剛指定的紅魚模型(mockup)

~$ docker run --net host --rm -v ${PWD}/mockup_iris:/mockup dmtf/redfish-mockup-server:latest -D /mockup

~$ curl -k -H "content-type: application/json" -X GET http://127.0.0.1:8000/redfish/v1/Managers
{
    "@odata.id": "/redfish/v1/Managers",
    "@odata.type": "#ManagerCollection.ManagerCollection",
    "Members": [
        {
            "@odata.id": "/redfish/v1/Managers/bmc"
        }
    ],
    "Members@odata.count": 1,
    "Name": "Manager Collection"
}

安裝方式和執行也和Creator差不多,這邊只附上我操作用到的指令

  • 安裝

docker pull dmtf/redfish-mockup-server:latest
  • 執行(記得要加上"-net host" )
~$ docker run --net host --rm -v ${PWD}/mockup_iris:/mockup dmtf/redfish-mockup-server:latest -D /mockup

Server 跑起來後,就可以下GET method了,預設IP和Port是127.0.0.1:8000,可以帶-H 去指定成任意IP


對於想要開發redfish unity,但沒有BMC的開發者來說挺方便的

沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。