如何使用 BMC Redfish REST API 更新 SR635 和 SR655 系统固件

如何使用 BMC Redfish REST API 更新 SR635 和 SR655 系统固件

如何使用 BMC Redfish REST API 更新 SR635 和 SR655 系统固件

这是机器翻译的文章,请单击此处查看原始英文版本。

描述

AMD 1P Redfish 服务器基于 AMI MegaRAC® Redfish 技术包 V1.7(遵循 DSP0266 1.7.0 规范和 Redfish Schema 2019.1)。为了添加 OEM API, Redfish 使用 RESTful 接口语义和 JSON 资源负载通过基于 Web 的协议执行系统管理。

本文介绍使用 BMC Redfish REST API 更新系统固件的过程。

本文将使用以下 HTTP 方法:

  • GET:读请求——用于请求指定的资源或集合来检查数据
  • POST:动作请求——用于发起操作或创建资源

适用系统

SR635、SR655

先决条件

  • Redfish 客户端必须安装在您的工作站或笔记本电脑上。
    • 红鱼客户端
      • Chrome:Postman、Talend API 测试器
      • 火狐:REST客户端
  • 工作站或笔记本电脑必须能够直接通过网络访问目标服务器上的 BMC。

程序

  1. Lenovo支持页面下载适合您的机器的固件包。
  2. 解压文件并将内容复制到指定文件夹。

如何获取已安装的固件信息

  1. 要访问固件清单集合中的属性,请打开 Postman,选择GET方法 ,然后输入以下请求的 URL https:// BMCIP /redfish/v1/UpdateService/FirmwareInventory
  2. 授权选项卡中,从类型菜单中选择基本身份验证,然后输入 BMC 凭据 。单击发送
    固件库存
    注意:每个请求都需要此授权步骤。
    响应示例
    如果上一次请求成功,会返回类似如下的消息体:
     {
        
    “@odata.context”  “/redfish/v1/$metadata#SoftwareInventoryCollection.SoftwareInventoryCollection” 
        
    "@odata.etag" : "\"1577837046\"" ,
        
    “@odata.id”  “/redfish/v1/UpdateService/FirmwareInventory” 
        
    "@odata.type" : "#SoftwareInventoryCollection.SoftwareInventoryCollection" ,
        
    “Description”  “UpdateService 可用的固件清单资源集合” 
        
    “会员” :[
        
    {
        
    "@odata.id" : "/redfish/v1/UpdateService/FirmwareInventory/LXPMLinuxDriver1" },
        
    {
        
    "@odata.id" : "/redfish/v1/UpdateService/FirmwareInventory/PSU2" },
        
    {
        
    "@odata.id" : "/redfish/v1/UpdateService/FirmwareInventory/LXPMWindowsDriver1" },
        
    {
        
    "@odata.id" : "/redfish/v1/UpdateService/FirmwareInventory/BMC-Primary" },
        
    {
        
    "@odata.id" : "/redfish/v1/UpdateService/FirmwareInventory/BMC-Backup" },
        
    {
        
    "@odata.id" : "/redfish/v1/UpdateService/FirmwareInventory/LXPM" },
        
    {
        
    "@odata.id" : "/redfish/v1/UpdateService/FirmwareInventory/UEFI" },
        
    {
        
    “@odata.id”  “/redfish/v1/UpdateService/FirmwareInventory/PSU1” }
        
    ],
        
    “会员@odata.count”  8 
        
    “名称”  “固件库存集合” } 
        
  3. 从成员列表的输出中,找到您要查询的系统固件端点 - 例如/redfish/v1/UpdateService/FirmwareInventory/UEFI 。将其输入 URL 字段以获取 UEFI 信息。
{
  
    "@odata.context" : "/redfish/v1/$metadata#UpdateService.UpdateService" ,
  
    "@odata.etag" : "\"1577837046\"" ,
  
    “@odata.id”  “/redfish/v1/UpdateService/FirmwareInventory/UEFI” 
  
    “@odata.type”  “#SoftwareInventory.v1_2_2.SoftwareInventory” 
  
    “Id”  “UEFI” 
  
    “名称”  “UEFI 固件” 
  
    “相关项目” :[
  
{
  
            “@odata.id”  “/redfish/v1/Systems/Self”
  
},
  
{
  
            “@odata.id”  “/redfish/v1/Systems/1”
  
}
  
],
  
    “RelatedItem@odata.count”  2 
  
    “软件ID”  “CFE118K” 
   
    “地位” : {
   
        “健康”  “还好” 
   
        “状态”  “已启用”
   
},
   
    “可更新”  true 
   
    “版本”  “5.10”
  
}

在上面显示的响应数据中,安装的 UEFI 版本为5.10 ,软件 ID 为CFE118K

UEFI 更新

  1. 选择POST方法,然后输入以下请求的 URL: https:// BMCIP /redfish/v1/UpdateService/upload
  2. 在 POST 操作的正文选项卡中,选择form-data ,将 KEY 名称设置为UpdateFile ,并将 KEY 类型更改为File

后正文

  1. 在值部分中,选择要更新的固件映像。

文件

  1. 打开文本编辑器(例如 Notepad++)创建包含以下内容的parameters.json JSON 文件:
 {“目标”:[“/redfish/v1/Managers/Self”]} 

参数

  1. 创建另一个oem_parameters.json JSON 文件,其中包含以下内容:
 {
      "FlashType":"UEFI更新",
      "上传选择器":"默认"                    
} 

OEM_参数

  1. 输入UpdateParameters作为 KEY 名称,将 KEY 类型更改为File ,然后选择您在步骤 4 中创建的parameters.json文件。
  2. 输入OemParameters作为另一个 KEY 名称,将 KEY 类型更改为File ,然后选择您在步骤 5 中创建的oem_parameters.json文件。
  3. 单击“发送”

UEFI更新

  1. 如果请求成功,将显示响应代码状态202 Accepted 。消息正文将类似于以下示例:

202 已接受

UEFI 更新状态

在上面的响应示例中, /redfish/v1/TaskService/Tasks/1989是刚刚创建的新任务。您可以使用Get方法通过任务 ID 查询更新状态。

请求网址

https:// BMCIP /redfish/v1/TaskService/Task/ ID

响应示例

查询BIOS状态

查询BIOS状态2

强力动作

  1. 重新启动服务器并再次执行固件清单。 BIOS版本将已更新。

您还可以使用POST方法执行系统重置。

请求网址

https: //BMCIP/redfish/v1/System/Self/Actions/ComputerSystem.Reset

POST 操作请求的正文

{“ResetType”:“强制重启”}

响应示例

如果操作成功,将返回响应状态 202 以及以下响应正文:

 {
  
    "@odata.context" : "/redfish/v1/$metadata#Task.Task(任务状态,描述,名称,Id)" ,
  
    “@odata.id”  “/redfish/v1/TaskService/Tasks/1” 
  
    "@odata.type" : "#Task.v1_2_0.Task" ,
  
    “描述”  “计算机重置任务” 
  
    “ID”   1  
  
    “名称”  “计算机重置” 
  
    “任务状态”  “新”
  
} 
  

BMC更新

  1. 选择 POST 方法,然后输入以下请求的 URL:

http:// BMCIP /redfish/v1/UpdateService/upload

  1. 在 POST 操作的正文选项卡中,选择form-data ,将 KEY 名称设置为UpdateFile ,并将 KEY 类型更改为File

后正文

  1. 在值部分中,选择要更新的固件映像。

文件

  1. 打开源代码编辑器(例如 Notepad++)创建包含以下内容的parameters.json JSON 文件:
 {“目标”:[“/redfish/v1/Managers/Self”]} 

参数

  1. 创建另一个oem_parameters.json JSON 文件,其中包含以下内容:
 {
      "FlashType":"HPMFwUpdate",
      "上传选择器":"默认"                     
} 

参数_bmc

  1. 输入UpdateParameters作为 KEY 名称,将 KEY 类型更改为File ,然后选择您在步骤 4 中创建的parameters.json文件。
  2. 输入OemParameters作为另一个 KEY 名称,将 KEY 类型更改为File ,然后选择您在步骤 5 中创建的oem_parameters.json文件。
  3. 单击“发送”

BMC更新

  1. 如果请求成功,将显示响应代码状态202 Accepted 。消息正文将类似于以下示例:

BMC_任务

在上面的响应示例中, /redfish/v1/TaskService/Tasks/1991是刚刚创建的新任务。您可以使用Get方法通过任务ID查询更新状态。

请求网址

https:// BMCIP /redfish/v1/TaskService/Task/ ID

响应示例

BMC_更新状态

  1. 当任务状态完成并且可以访问ThinkSystem System Manager (BMC GUI) 时,BMC 版本将更新。

视频

附加信息

相关文章

文件ID:HT511480
初始发布日期:11/19/2020
最近修改日期:03/30/2024