Como atualizar o firmware do sistema SR635 e SR655 usando a API REST do BMC Redfish

Como atualizar o firmware do sistema SR635 e SR655 usando a API REST do BMC Redfish

Como atualizar o firmware do sistema SR635 e SR655 usando a API REST do BMC Redfish

Este é um artigo traduzido automaticamente, por favor clique aqui para ver a versão original em inglês.

Descrição

O servidor AMD 1P Redfish é baseado no AMI MegaRAC® Redfish Technology Package V1.7 (segue a especificação DSP0266 1.7.0 e o esquema Redfish 2019.1). Para adicionar APIs OEM, Redfish usa semântica de interface RESTful e cargas úteis de recursos JSON para realizar o gerenciamento do sistema por meio de protocolos baseados na Web.

Este artigo apresenta o procedimento usado para atualizar o firmware do sistema usando a API REST do BMC Redfish.

Os seguintes métodos HTTP serão usados neste artigo:

  • GET: solicitação de leitura – usada para solicitar um recurso ou coleção especificada para verificar dados
  • POST: solicitação de ação – usada para iniciar operações ou criar recursos

Sistemas Aplicáveis

SR635, SR655

Pré-requisitos

  • Os clientes Redfish devem estar instalados em sua estação de trabalho ou laptop.
    • Cliente cantarilho
      • Chrome: Postman, testador de API Talend
      • Raposa de fogo: RESTClient
  • A estação de trabalho ou laptop deve ter acesso direto à rede ao BMC no servidor de destino.

Procedimentos

  1. Baixe o pacote de firmware apropriado para sua máquina na página de suporte Lenovo .
  2. Descompacte os arquivos e copie o conteúdo para uma pasta especificada.

Como obter as informações do firmware instalado

  1. Para acessar as propriedades na coleção de inventário de firmware, abra o Postman, selecione o método GET e insira o seguinte URL solicitado : https:// BMCIP /redfish/v1/UpdateService/FirmwareInventory
  2. Na guia Autorização , selecione Autenticação Básica no menu Tipo e insira as credenciais do BMC . Clique em Enviar .
    inventário de firmware
    Nota: Esta etapa de autorização é necessária para cada solicitação.
    Exemplo de resposta
    Se a solicitação anterior for bem-sucedida, um corpo de mensagem semelhante ao seguinte será retornado:
     {
        
    "@odata.context" : "/redfish/v1/$metadata#SoftwareInventoryCollection.SoftwareInventoryCollection" ,
        
    "@odata.etag" : "\"1577837046\"" ,
        
    "@odata.id" : "/redfish/v1/UpdateService/FirmwareInventory" ,
        
    "@odata.type" : "#SoftwareInventoryCollection.SoftwareInventoryCollection" ,
        
    "Description" : "Coleta de recursos de inventário de firmware disponíveis para o UpdateService" ,
        
    "Membros" : [
        
    {
        
    "@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" }
        
    ],
        
    "Membros@odata.count" : 8 ,
        
    "Nome" : "Coleção de inventário de firmware" } 
        
  3. Na saída da lista Membros, encontre o endpoint de firmware do sistema que você deseja consultar – por exemplo, /redfish/v1/UpdateService/FirmwareInventory/UEFI . Insira-o no campo URL para obter as informações 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" ,
  
    "Nome" : "Firmware UEFI" ,
  
    "Item relacionado" : [
  
{
  
            "@odata.id" : "/redfish/v1/Systems/Self"
  
},
  
{
  
            "@odata.id" : "/redfish/v1/Systems/1"
  
}
  
],
  
    "RelatedItem@odata.count" : 2 ,
  
    "SoftwareId" : "CFE118K" ,
   
    "Status" : {
   
        "Saúde" : "OK" ,
   
        "Estado" : "Ativado"
   
},
   
    "Atualizável" : verdadeiro ,
   
    "Versão" : "5.10"
  
}

Nos dados de resposta mostrados acima, a versão UEFI instalada é 5.10 e o ID do software é CFE118K .

Atualizações UEFI

  1. Selecione o método POST e insira o seguinte URL solicitado: https:// BMCIP /redfish/v1/UpdateService/upload
  2. Na guia Body para a ação POST, selecione form-data , defina o nome KEY como UpdateFile e altere o tipo KEY para File .

POSTcorpo

  1. Na seção de valor, selecione a imagem do firmware que você deseja atualizar.

arquivo

  1. Abra um editor de texto como o Notepad++ para criar um arquivo JSON parameters.json com o seguinte conteúdo:
 { "Alvos": [ "/redfish/v1/Gerentes/Self" ] } 

parâmetros

  1. Crie outro arquivo JSON oem_parameters.json com o seguinte conteúdo:
 {
      "FlashType":"UEFIUpdate",
      "UploadSelector":"Padrão"                    
} 

parâmetros_oem

  1. Insira UpdateParameters como um nome de KEY, altere o tipo de KEY para File e selecione o arquivo parameters.json que você criou na etapa 4.
  2. Insira OemParameters como outro nome de KEY, altere o tipo de KEY para File e selecione o arquivo oem_parameters.json que você criou na etapa 5.
  3. Clique em Enviar .

Atualização UEFI

  1. Se a solicitação for bem-sucedida, o status do código de resposta 202 Aceito será exibido. O corpo da mensagem será semelhante ao exemplo a seguir:

202 aceito

Status de atualização UEFI

No exemplo de resposta acima, /redfish/v1/TaskService/Tasks/1989 é a nova tarefa que acabou de ser criada. Você pode usar o método Get para consultar o status da atualização com o ID da tarefa.

Solicitar URL

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

Exemplo de resposta

consultar o status do BIOS

consultar status do BIOS2

Ações de poder

  1. Reinicie o servidor e execute novamente o inventário de firmware. A versão BIOS terá sido atualizada.

Você também pode usar o método POST para redefinir o sistema.

Solicitar URL

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

Corpo solicitado da ação POST:

{"ResetType":"ForceRestart"}

Exemplo de resposta

Se a ação for bem-sucedida, o status de resposta 202 será retornado com o seguinte corpo de resposta:

 {
  
    "@odata.context" : "/redfish/v1/$metadata#Task. Task(TaskState,Descrição,Nome,Id)" ,
  
    "@odata.id" : "/redfish/v1/TaskService/Tasks/1" ,
  
    "@odata.type" : "#Task.v1_2_0.Task" ,
  
    "Descrição" : "Tarefa para reinicialização do computador" ,
  
    "Id" : " 1 " ,
  
    "Nome" : "Reinicialização do computador" ,
  
    "TaskState" : "Novo"
  
} 
  

Atualizações do BMC

  1. Selecione o método POST e insira o seguinte URL solicitado:

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

  1. Na guia Body para a ação POST, selecione form-data , defina o nome KEY como UpdateFile e altere o tipo KEY para File .

POSTcorpo

  1. Na seção de valor, selecione a imagem do firmware que você deseja atualizar.

arquivo

  1. Abra um editor de código-fonte como o Notepad++ para criar um arquivo JSON parameters.json com o seguinte conteúdo:
 { "Alvos": [ "/redfish/v1/Gerentes/Self" ] } 

parâmetros

  1. Crie outro arquivo JSON oem_parameters.json com o seguinte conteúdo:
 {
      "FlashType":"HPMFwAtualização",
      "UploadSelector":"Padrão"                     
} 

parâmetros_bmc

  1. Insira UpdateParameters como um nome de KEY, altere o tipo de KEY para File e selecione o arquivo parameters.json que você criou na etapa 4.
  2. Insira OemParameters como outro nome de KEY, altere o tipo de KEY para File e selecione o arquivo oem_parameters.json que você criou na etapa 5.
  3. Clique em Enviar .

Atualização do BMC

  1. Se a solicitação for bem-sucedida, o status do código de resposta 202 Aceito será exibido. O corpo da mensagem será semelhante ao exemplo a seguir:

BMC_tarefa

No exemplo de resposta acima, /redfish/v1/TaskService/Tasks/1991 é a nova tarefa que acabou de ser criada. Você pode usar o método Get para consultar o status da atualização com o ID da tarefa.

Solicitar URL

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

Exemplo de resposta

Status do BMC_Atualização

  1. Quando o estado da tarefa for concluído e o ThinkSystem System Manager (BMC GUI) estiver acessível, a versão do BMC será atualizada.

Vídeo

Informações adicionais

Artigo relacionado

ID do documento:HT511480
Data de publicação original:11/19/2020
Data da última modificação:03/30/2024