Como atualizar o firmware do sistema usando a API REST do XCC Redfish para servidores ThinkSystem
Como atualizar o firmware do sistema usando a API REST do XCC Redfish para servidores ThinkSystem
Como atualizar o firmware do sistema usando a API REST do XCC Redfish para servidores ThinkSystem
Descrição
Lenovo XClarity Controller (XCC) fornece suporte para a Redfish Scalable Platforms Management API padrão da indústria, que pode ser usada para acessar dados e serviços XCC de aplicativos em execução fora do XCC. O Redfish usa semântica de interface RESTful e payloads de recursos JSON para executar 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 XCC Redfish.
Os seguintes métodos HTTP serão usados neste artigo:
- GET: solicitação de leitura – usada para solicitar um recurso ou coleção especificado para verificar dados
- POST: solicitação de ação – usada para iniciar operações ou criar recursos
Sistemas aplicáveis
ThinkSystem (exceto HR330A, HR350A, HR630X, HR650X), SR645, SR665
Pré-requisitos
- Um cliente Redfish deve ser instalado em sua estação de trabalho ou laptop.
- Clientes da Redfish:
- Chrome: Postman, testador de API Talend
- Firefox: RESTCliente
- A estação de trabalho ou laptop deve ter acesso direto à rede do XCC no servidor de destino.
Procedimentos
Use as etapas a seguir para atualizar os níveis de firmware do sistema usando o método XCC Redfish API.
Baixe os pacotes de firmware desejados
- Baixe o pacote de firmware apropriado para sua máquina na página de suporte Lenovo .
- Descompacte os arquivos e copie o conteúdo para uma pasta especificada.
Recuperar as versões de firmware instaladas
- Para acessar as propriedades na coleção de inventário de firmware, abra o postman, selecione o método GET ① e insira a seguinte URL solicitada ② : https:// BMCIP /redfish/v1/UpdateService/FirmwareInventory
- Na aba Authorization , selecione Basic Auth no menu Type ③ e então insira as credenciais do BMC ④ . Clique em Send ⑤ .
Observação: esta etapa de autorização é necessária para cada solicitação.
Exemplo de resposta
Se a solicitação for bem-sucedida, um corpo de mensagem semelhante ao seguinte será retornado:
{ "Membros": [ { "@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": "/redfish/v1/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/Disco1" }, { "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Disco2" }, { "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Disco3" }, { "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Disco4" }, { "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Disco5" }, { "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Disco6" }, { "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/PSU1" } ], "@odata.type": "#SoftwareInventoryCollection.SoftwareInventoryCollection", "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory", "Members@odata.count": 20, "@odata.etag": "\"af76d20eb1af2e197f855\"", "Nome": "SoftwareInventoryCollection", "Descrição": "Coleção de inventário de firmware." }
- Na saída da lista Members, encontre o endpoint do 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.
{ "ReleaseDate": "2020-09-18T00:00:00Z", "RelatedItem": [ { "@odata.id": "/redfish/v1/Systems/1/ Bios " } ], "Id": "UEFI", "Status": { "HealthRollup": "OK", "Health": "OK", "State": "Enabled" }, "Manufacturer": " Lenovo ", "Name": "Firmware:UEFI", "Version": "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", "Updateable": true, "@odata.etag": "\"3d193e9f3c0c2725df0\"", "LowestSupportedVersion": null, "Description": "As informações do firmware UEFI." }
Nos dados de resposta acima, o UEFI instalado é 60N-2.71 e o ID do software é UEFI-IVE1-1.6 .
Aplicar atualizações de firmware
Use o método POST para aplicar atualizações UEFI ou XCC .
Atualizações UEFI
- Selecione o método POST e insira o seguinte URL solicitado: https:// BMCIP /fwupdate
- Na guia Corpo da ação POST , selecione binário e, em seguida, selecione a imagem de firmware a ser atualizada.
- Clique em Enviar .
- Se a solicitação for bem-sucedida, o status do código de resposta 202 Accepted será exibido. O corpo da mensagem será semelhante ao exemplo a seguir:
No exemplo de resposta acima, /redfish/v1/TaskService/Tasks/00fc5d1b-f3da-469a-a4b0-007e91baa55f é 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.
URL solicitada
https:// BMCIP /redfish/v1/TaskService/Task/ ID
Exemplo de resposta
- Reinicie o servidor e execute o inventário de firmware novamente. A versão BIOS terá sido atualizada.
Você também pode usar o método POST para executar uma reinicialização do sistema.
URL solicitada
https:// BMCIP /redfish/v1/Systems/1/Actions/ComputerSystem.Reset
Corpo solicitado da ação POST:
{"ResetType":"Reinício Elegante"}
# Os valores possíveis do tipo de reinicialização do sistema podem ser On/ForceOff/GracefulShutdown/GracefulRestart/ForceRestart/Nmu/ForceOn
Exemplo de resposta
A seguinte resposta JSON será retornada:
Nenhum
Atualizações XCC
- Selecione o método POST e insira o seguinte URL solicitado: https:// BMCIP /fwupdate
- Na guia Corpo da ação POST , selecione binário e, em seguida, selecione a imagem de firmware a ser atualizada.
- Clique em Enviar .
- Se a solicitação for bem-sucedida, o status do código de resposta 202 Accepted será exibido. O corpo da mensagem será semelhante ao exemplo a seguir:
No exemplo de resposta acima, /redfish/v1/TaskService/Tasks/d9674179-39e2-4842-8cbe-5d2ce477e49b é 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.
URL solicitada
https:// BMCIP /redfish/v1/TaskService/Task/ID
Exemplo de resposta
- Reinicie o servidor e execute o inventário de firmware novamente. A versão do XCC terá sido atualizada.
Você também pode usar o método POST para reiniciar o XCC.
URL solicitada
https://BMCIP/redfish/v1/Managers/1/Actions/Manager.Reset
Corpo solicitado da ação POST:
{"ResetType":"Reinício Elegante"}
# Os valores possíveis do tipo de reinicialização XCC podem ser GracefulRestart/ForceRestart
Exemplo de resposta
A seguinte resposta JSON será retornada:
Nenhum