Как обновить прошивку системы с помощью XCC Redfish REST API для серверов ThinkSystem
Как обновить прошивку системы с помощью XCC Redfish REST API для серверов ThinkSystem
Как обновить прошивку системы с помощью XCC Redfish REST API для серверов ThinkSystem
Описание
Lenovo XClarity Controller (XCC) обеспечивает поддержку стандартного в отрасли API управления масштабируемыми платформами Redfish, который можно использовать для доступа к данным и службам XCC из приложений, работающих вне XCC. Redfish использует семантику интерфейса RESTful и полезные нагрузки ресурсов JSON для управления системой через веб-протоколы.
В этой статье описывается процедура обновления прошивки системы с использованием XCC Redfish REST API.
В этой статье будут использоваться следующие методы HTTP:
- GET: запрос на чтение – используется для запроса указанного ресурса или коллекции для проверки данных.
- POST: запрос действия – используется для инициирования операций или создания ресурсов
Применимые системы
ThinkSystem (кроме HR330A, HR350A, HR630X, HR650X), SR645, SR665
Предпосылки
- На вашей рабочей станции или ноутбуке должен быть установлен клиент Redfish.
- Клиенты Redfish:
- Chrome: Postman, Talend API Tester
- Firefox: RESTClient
- Рабочая станция или ноутбук должны иметь прямой сетевой доступ к 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": "/redfish/v1/UpdateService/FirmwareInventory/Ob_5.Bundle" }, { "@odata.id": fish/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/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\"", "Name": "SoftwareInventoryCollection", "Description": "Коллекция инвентаризации прошивок." }
- В выводе списка участников найдите конечную точку системной прошивки, которую вы хотите запросить, например, /redfish/v1/UpdateService/FirmwareInventory/UEFI . Введите ее в поле URL, чтобы получить информацию 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": "Информация о прошивке UEFI." }
В приведенных выше данных ответа установленный UEFI — 60N-2.71 , а идентификатор программного обеспечения — UEFI-IVE1-1.6 .
Применить обновления прошивки
Используйте метод POST для применения обновлений UEFI или XCC .
Обновления UEFI
- Выберите метод POST , а затем введите следующий запрашиваемый URL: https:// BMCIP /fwupdate
- На вкладке Тело для действия POST выберите двоичный , а затем выберите образ прошивки для обновления.
- Нажмите «Отправить» .
- Если запрос выполнен успешно, будет отображен код ответа status 202 Accepted . Текст сообщения будет похож на следующий пример:
В приведенном выше примере ответа /redfish/v1/TaskService/Tasks/00fc5d1b-f3da-469a-a4b0-007e91baa55f — это новая задача, которая только что была создана. Вы можете использовать метод Get для запроса статуса обновления с идентификатором задачи.
Запрошенный URL-адрес
https:// BMCIP /redfish/v1/TaskService/Task/ ID
Пример ответа
- Перезагрузите сервер и выполните инвентаризацию прошивки еще раз. Версия 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 выберите двоичный , а затем выберите образ прошивки для обновления.
- Нажмите «Отправить» .
- Если запрос выполнен успешно, будет отображен код ответа status 202 Accepted . Текст сообщения будет похож на следующий пример:
В приведенном выше примере ответа: /redfish/v1/TaskService/Tasks/d9674179-39e2-4842-8cbe-5d2ce477e49b — это новая задача, которая только что была создана. Вы можете использовать метод Get для запроса статуса обновления с идентификатором задачи.
Запрошенный 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:
Никто