Как обновить прошивку системы SR635 и SR655 с помощью REST API BMC Redfish

Как обновить прошивку системы SR635 и SR655 с помощью REST API BMC Redfish

Как обновить прошивку системы SR635 и SR655 с помощью REST API BMC Redfish

Эта статья переведена автоматически. Щелкните здесь, чтобы просмотреть исходную версию на английском языке.

Описание

Сервер AMD 1P Redfish основан на технологическом пакете AMI MegaRAC® Redfish V1.7 (соответствует спецификации DSP0266 1.7.0 и схеме Redfish 2019.1). Чтобы добавить API-интерфейсы OEM, Redfish использует семантику интерфейса RESTful и полезные данные ресурсов JSON для управления системой через веб-протоколы.

В этой статье описывается процедура обновления встроенного ПО системы с помощью REST API BMC Redfish.

В этой статье будут использоваться следующие методы HTTP:

  • GET: запрос на чтение – используется для запроса указанного ресурса или коллекции для проверки данных.
  • POST: запрос действия – используется для инициирования операций или создания ресурсов.

Применимые системы

СР635, СР655

Предварительные условия

  • Клиенты Redfish должны быть установлены на вашей рабочей станции или ноутбуке.
    • Клиент Redfish
      • Chrome: Postman, тестер API Talend
      • Firefox: 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" ,
        
    «Описание» : «Коллекция ресурсов инвентаризации встроенного ПО, доступных для 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" }
        
    ],
        
    «Members@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" ,
  
    «Идентификатор» : «UEFI» ,
  
    «Имя» : «Прошивка UEFI» ,
  
    «Связанный элемент» : [
  
{
  
            "@odata.id" : "/redfish/v1/Systems/Self"
  
},
  
{
  
            "@odata.id" : "/redfish/v1/Systems/1"
  
}
  
],
  
    «RelatedItem@odata.count» : 2 ,
  
    «SoftwareId» : «CFE118K» ,
   
    "Положение дел" : {
   
        «Здоровье» : «ОК» ,
   
        «Состояние» : «Включено»
   
},
   
    «Обновляемый» : правда ,
   
    «Версия» : «5.10»
  
}

В ответных данных, показанных выше, установлена версия UEFI — 5.10 , а идентификатор программного обеспечения — CFE118K .

Обновления UEFI

  1. Выберите метод POST , а затем введите следующий запрошенный URL-адрес: https:// BMCIP /redfish/v1/UpdateService/upload.
  2. На вкладке «Тело» для действия POST выберите данные формы , установите имя KEY на UpdateFile и измените тип KEY на File .

POSTbody

  1. В разделе значений выберите образ прошивки, которую хотите обновить.

файл

  1. Откройте текстовый редактор, например Notepad++, чтобы создать JSON-файл параметров.json со следующим содержимым:
 { "Цели": [ "/redfish/v1/Managers/Self" ] } 

параметры

  1. Создайте еще один JSON-файл oem_parameters.json со следующим содержимым:
 {
      "FlashType":"UEFIUpdate",
      "UploadSelector":"По умолчанию"                    
} 

oem_parameters

  1. Введите UpdateParameters в качестве имени KEY, измените тип KEY на File , а затем выберите файл options.json , созданный на шаге 4.
  2. Введите OemParameters в качестве другого имени KEY, измените тип KEY на File , а затем выберите файл oem_parameters.json , созданный на шаге 5.
  3. Нажмите Отправить .

Обновление UEFI

  1. Если запрос успешен, будет отображен статус кода ответа 202 Accepted . Тело сообщения будет похоже на следующий пример:

202 принято

Статус обновления UEFI

В приведенном выше примере ответа /redfish/v1/TaskService/Tasks/1989 — это новая задача, которая только что была создана. Вы можете использовать метод Get для запроса статуса обновления с помощью идентификатора задачи.

URL-адрес запроса

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

Пример ответа

запросить статус BIOS

запрос статуса биоса2

Силовые действия

  1. Перезагрузите сервер и снова выполните инвентаризацию прошивки. Версия BIOS будет обновлена.

Вы также можете использовать метод POST для выполнения сброса системы.

URL-адрес запроса

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

Запрошенное тело действия POST:

{"ResetType":"ForceRestart"}

Пример ответа

Если действие было успешным, статус ответа 202 будет возвращен со следующим телом ответа:

 {
  
    "@odata.context" : "/redfish/v1/$metadata#Task. Task(TaskState,Description,Name,Id)" ,
  
    "@odata.id" : "/redfish/v1/TaskService/Tasks/1" ,
  
    "@odata.type" : "#Task.v1_2_0.Task" ,
  
    «Описание» : «Задание по перезагрузке компьютера» ,
  
    «Идентификатор» : « 1 » ,
  
    «Имя» : «Сброс компьютера» ,
  
    «TaskState» : «Новый»
  
} 
  

Обновления BMC

  1. Выберите метод POST, а затем введите следующий запрошенный URL-адрес:

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

  1. На вкладке «Тело» для действия POST выберите данные формы , установите имя KEY на UpdateFile и измените тип KEY на File .

POSTbody

  1. В разделе значений выберите образ прошивки, которую хотите обновить.

файл

  1. Откройте редактор исходного кода, например Notepad++, чтобы создать JSON-файл параметров.json со следующим содержимым:
 { "Цели": [ "/redfish/v1/Managers/Self" ] } 

параметры

  1. Создайте еще один JSON-файл oem_parameters.json со следующим содержимым:
 {
      "FlashType":"HPMFwUpdate",
      "UploadSelector":"По умолчанию"                     
} 

параметры_bmc

  1. Введите UpdateParameters в качестве имени KEY, измените тип KEY на File , а затем выберите файл options.json , созданный на шаге 4.
  2. Введите OemParameters в качестве другого имени KEY, измените тип KEY на File , а затем выберите файл oem_parameters.json , созданный на шаге 5.
  3. Нажмите Отправить .

Обновление BMC

  1. Если запрос успешен, будет отображен статус кода ответа 202 Accepted . Тело сообщения будет похоже на следующий пример:

BMC_задача

В приведенном выше примере ответа /redfish/v1/TaskService/Tasks/1991 — это только что созданная новая задача. Вы можете использовать метод Get для запроса статуса обновления с помощью идентификатора задачи.

URL-адрес запроса

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

Пример ответа

BMC_Обновить статус

  1. Когда состояние задачи завершено и ThinkSystem System Manager (GUI BMC) доступен, версия BMC будет обновлена.

видео

Дополнительная информация

Связанная статья

ID документа:HT511480
Дата публикации оригинала:11/19/2020
Дата последнего изменения:03/30/2024