如何使用 XCC Redfish REST API 更新ThinkSystem服务器的系统固件
如何使用 XCC Redfish REST API 更新ThinkSystem服务器的系统固件
如何使用 XCC Redfish REST API 更新ThinkSystem服务器的系统固件
描述
Lenovo XClarity Controller (XCC) 支持行业标准的 Redfish 可扩展平台管理 API,可用于从 XCC 外部运行的应用程序访问 XCC 数据和服务。Redfish 使用 RESTful 接口语义和 JSON 资源有效负载通过基于 Web 的协议执行系统管理。
本文介绍了使用 XCC Redfish REST API 更新系统固件的过程。
本文将使用以下 HTTP 方法:
- GET:读取请求——用于请求指定资源或集合来检查数据
- POST:动作请求——用于启动操作或创建资源
适用系统
ThinkSystem (HR330A、HR350A、HR630X、HR650X 除外)、SR645、SR665
先决条件
- 您的工作站或笔记本电脑上必须安装 Redfish 客户端。
- Redfish 客户:
- Chrome:Postman、Talend API 测试器
- Firefox:REST客户端
- 工作站或笔记本电脑必须能够通过网络直接访问目标服务器上的 XCC。
过程
使用以下步骤使用 XCC Redfish API 方法更新系统固件级别。
下载所需的固件包
- 从Lenovo支持页面下载适合您机器的固件包。
- 解压文件并将内容复制到指定文件夹。
检索已安装的固件版本
- 要访问固件清单集合中的属性,请打开 Postman,选择GET方法① ,然后输入以下请求的 URL ② :https:// BMCIP /redfish/v1/UpdateService/FirmwareInventory
- 在授权选项卡中,从类型菜单③中选择基本授权,然后输入 BMC 凭证④ 。单击发送⑤ 。
注意:每个请求都需要此授权步骤。
响应示例
如果请求成功,会返回类似如下的消息体:
{ “成员”:[ { “@odata.id”:“/redfish/v1/UpdateService/FirmwareInventory/BMC-Primary” }, { “@odata.id”:“/redfish/v1/UpdateService/FirmwareInventory/BMC-Backup” }, { “@odata.id”:“/redfish/v1/UpdateService/FirmwareInventory/UEFI” }, { “@odata.id”:“/redfish/v1/UpdateService/FirmwareInventory/LXPM” }, { “@odata.id”:“/redfish/v1/UpdateService/FirmwareInventory/LXPMWindowsDriver” }, { “@odata.id”:“/redfish/v1/UpdateService/FirmwareInventory/LXPMLinuxDriver” }, { “@odata.id”: "/redfish/v1/UpdateService/FirmwareInventory/Ob_1.Bundle" }, { "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Slot_4.Bundle" }, { "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Ob_5.Bundle" }, { "@odata.id": 1/UpdateService/FirmwareInventory/Ob_4.Bundle" }, { "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Ob_1.1" }, { "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Ob_1.2" }, { "@odata.id": “/redfish/v1/UpdateService/FirmwareInventory/Slot_4.1” }, { “@odata.id”:“/redfish/v1/UpdateService/FirmwareInventory/Disk1” }, { “@odata.id”:“/redfish/v1/UpdateService/FirmwareInventory/Disk2” }, { “@odata.id”:“/redfish/v1/UpdateService/FirmwareInventory/Disk3” }, { “@odata.id”:“/redfish/v1/UpdateService/FirmwareInventory/Disk4” }, { “@odata.id”:“/redfish/v1/UpdateService/FirmwareInventory/Disk5” }, { “@odata.id”:“/redfish/v1/UpdateService/FirmwareInventory/Disk6” }, { “@odata.id” “/redfish/v1/UpdateService/FirmwareInventory/PSU1” } ], “@odata.type”:“#SoftwareInventoryCollection.SoftwareInventoryCollection”, “@odata.id”:“/redfish/v1/UpdateService/FirmwareInventory”, “Members@odata.count”:20, “@odata.etag”:“\”af76d20eb1af2e197f855\“”, “名称”:“SoftwareInventoryCollection”, “说明”:“固件库存收集。” }
- 从成员列表的输出中,找到要查询的系统固件端点 - 例如/redfish/v1/UpdateService/FirmwareInventory/UEFI 。 将其输入到 URL 字段中以获取 UEFI 信息。
{ “ReleaseDate”:“2020-09-18T00:00:00Z”, “RelatedItem”:[{ “@odata.id”:“/redfish/v1/Systems/1/ Bios ” } ],“Id”:“UEFI”, “状态”:{ “HealthRollup”:“OK”, “健康”:“OK”, “状态”:“已启用” },“制造商”:“ Lenovo ”, “名称”:“固件:UEFI”, “版本”:“60N-2.71”, “SoftwareId”:“UEFI-IVE1-6”, “RelatedItem@odata.count”:1, “@odata.type”:“#SoftwareInventory.v1_2_3.SoftwareInventory”, “@odata.id”:“/redfish/v1/UpdateService/FirmwareInventory/UEFI”, “可更新”:true, “@odata.etag”: "\"3d193e9f3c0c2725df0\"", "LowestSupportedVersion": null, "Description": "UEFI 固件的信息。" }
上面的响应数据中,安装的UEFI是60N-2.71 ,软件ID是UEFI-IVE1-1.6 。
应用固件更新
UEFI 更新
- 选择POST方法,然后输入以下请求的URL: https:// BMCIP /fwupdate
- 在POST操作的Body选项卡中,选择binary ,然后选择要更新的固件映像。
- 单击“发送” 。
- 如果请求成功,则会显示响应代码状态202 Accepted 。消息正文将类似于以下示例:
上面的响应示例中, /redfish/v1/TaskService/Tasks/00fc5d1b-f3da-469a-a4b0-007e91baa55f是刚刚创建的新任务。您可以使用Get方法通过任务 ID 查询更新状态。
请求的 URL
https:// BMCIP /redfish/v1/TaskService/Task/ ID
响应示例
- 重新启动服务器并再次执行固件清点。BIOS 版本BIOS已更新。
您还可以使用POST方法执行系统重启。
请求的 URL
https:// BMCIP /redfish/v1/Systems/1/Actions/ComputerSystem.Reset
POST 操作的请求主体:
{"ResetType":"优雅重启"}
# 系统重置类型的可能值可以是On/ForceOff/GracefulShutdown/GracefulRestart/ForceRestart/Nmu/ForceOn
响应示例
将返回以下 JSON 响应:
没有任何
XCC 更新
- 选择POST方法,然后输入以下请求的URL: https:// BMCIP /fwupdate
- 在POST操作的Body选项卡中,选择binary ,然后选择要更新的固件映像。
- 单击“发送” 。
- 如果请求成功,则会显示响应代码状态202 Accepted 。消息正文将类似于以下示例:
在上面的响应示例中, /redfish/v1/TaskService/Tasks/d9674179-39e2-4842-8cbe-5d2ce477e49b是刚刚创建的新任务,可以使用Get方法通过任务ID查询更新状态。
请求的 URL
https:// BMCIP /redfish/v1/TaskService/Task/ID
响应示例
- 重新启动服务器并再次执行固件清点。XCC 版本将已更新。
您也可以使用POST方法重新启动XCC。
请求的 URL
https://BMCIP/redfish/v1/Managers/1/Actions/Manager.Reset
POST 操作的请求主体:
{"ResetType":"优雅重启"}
# XCC 重置类型的可能值可能是GracefulRestart/ForceRestart
响应示例
将返回以下 JSON 响应:
没有任何