(*如果之后架构有变,这边不会更新)
以上两个tool都是由DMTF开发的,Mockup 的中文意思是实物模型,Redfish Mockup Creator 可以去构建指定Redfish Services Resource 模型,而Redfish Mockup Server 我对它的定位在模拟器(emulator),可以喂给它指定的模型(Redfish Mockup),Server跑起来之后可以对它请求(request) GET method
Redfish Mockup Creator
Redfish Mockup Creator 是一个帮你把Redfish Service 的模型给建立出来的工具,先看一下执行结果
安装和执行的方式可以分为本机系统,或是使用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 容器示例 (Docker container example)
安装
要作为Docker 容器运行,请使用以下操作之一来拉取或构建容器:(选一个做就好,我选第一个)
1. 从 Docker Hub 拉取容器(Pull the container from Docker Hub):
docker pull dmtf/redfish-mockup-creator:latest
2. 从本地源构建容器(Build a container from local source):
docker build -t dmtf/redfish-mockup-creator:latest .
3. 从 GitHub 构建一个容器(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的开发者来说挺方便的