Introduction
This document describes how to upgrade Server C885-M8 using script method.
Background Information
The C885A_M8_upgrade.py script is a Python-based utility designed to streamline the update process for the out-of-band (OOB) components of the Cisco C885A server.
OOB components such as the BMC (Baseboard Management Controller), BIOS, GPU, and FPGA can be efficiently upgraded using this script via the Redfish API, ensuring compatibility and ease of use.
The C885A_M8_upgrade.py script provides administrators with a reliable and automated solution to maintain the firmware of key server components, ensuring optimal performance, security, and feature availability for the Cisco C885A server.
Note: This script is exclusively intended for updating OOB components. Updates for host components, including NVMe drives and Bluefield cards, must be performed directly from the operating system.
For host component updates, please refer to the README file included in the corresponding firmware bundle for detailed instructions.
Requirements
Ensure Python 3.x is installed along with the requests, beautifultable, and urllib3 modules. If these packages are not
already installed, you can install them using the command:
pip install requests beautifultable urllib3
Prerequisites
The host must be powered off to update the BIOS and FPGA components
Components Used
UCS C885A M8 Rack Server
Firmware Version: 1.0.28
Ubuntu 22.04.5 LTS
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, ensure that you understand the potential impact of any command.
Supported operating system
The Python script can be executed on the operating systems:
Command Options
Option
|
Description
|
--version
|
Show program version number and exit
|
-h, --help
|
Show this help message and exit
|
Upgrade C885A-M8 OOB components:
|
|
-B FIRMWARE_BUNDLE, --firmwarebundle=FIRMWARE_BUNDLE
|
Firmware bundle file (tar.gz). If not provided, the script performs discovery operation and then exits.
|
-U USER_NAME, --bmcusername=USER_NAME
|
BMC user name
|
-P PASSWORD, --bmcpassword=PASSWORD
|
BMC password
|
-I BMC_IP, --bmcip=BMC_IP
|
BMC IP address
|
-D, --discover
|
Script performs discovery operation and then exits
|
-F, --fwupgrade
|
Upgrade out-of-band (OOB) firmware
|
Firmware upgrade Steps
Step 1: Download Upgrade Files
Download the script from the Cisco Software Download portal and download the files for your server:
- Firmware bundle (Example: ucs-c885a-m8-1.1.0.250022.tar.gz)
- Upgrade script (Example: ucs-c885a-m8-upgrade-script-v1.2.tar.gz)
Step 2: Prepare the Firmware Bundle and Script
Ensure that the firmware bundle (.tar.gz file) and the upgrade script (C885A_M8_upgrade.py) are stored locally on your computer. These files are going to be used directly from your local system to perform the upgrade.
Verify that the files are in the correct location on your local computer:
Firmware Bundle: <path_to_firmware_bundle.tar.gz>
Upgrade Script: <path_to_C885A_M8_upgrade.py>
Step 3: Run the Inventory Command
Before performing the update, use the discovery (-D) option to list the current firmware versions of the OOB components.
Proceed to list the Component Inventory which indicates whether an update is required based on the running firmware versions.
python3 C885A_M8_upgrade.py -B firmware_bundle.tar.gz -U <BMC_USERNAME> -P <BMC_PASSWORD> -I <BMC_IP> -D
Replace:
- firmware_bundle.tar.gz with the firmware bundle file name.
- <BMC_USERNAME> with the BMC username (admin, root).
- <BMC_PASSWORD> with the BMC password.
- <BMC_IP> with the BMC IP address.
python3 C885A_M8_upgrade.py -B ucs-c885a-m8-1.0.0.240001.tgz -U root -P password -I 192.168.1.100 -D
Review the inventory output to identify which components require an update.
Extracting firmware bundle... success
Validating BMC login details... success
Inventory started... success
Inventory Details
-----------------
IP : 10.x.x.x
Hostname : C885A
Board Serial : 8852444001
Product Name : UCSC-885A-M8-M3X2
Host Power State: Off
GPU Model : MI300X
+------+------------+--------------------+---------------------+-----------------+
| S.No | Component | Running FW version | Packaged FW Version | Update Required |
+------+------------+--------------------+---------------------+-----------------+
| 1 | BMC | 1.1.3 | 1.1.4 | Yes |
+------+------------+--------------------+---------------------+-----------------+
| 2 | BIOS | 1.1.3 | 1.1.4 | Yes |
+------+------------+--------------------+---------------------+-----------------+
| 3 | DCSCM-FPGA | 2.02 | 2.03 | Yes |
+------+------------+--------------------+---------------------+-----------------+
| 4 | MB-FPGA | 2.02 | 2.03 | Yes |
+------+------------+--------------------+---------------------+-----------------+
| 5 | HIB-FPGA | 2.23 | 2.24 | Yes |
+------+------------+--------------------+---------------------+-----------------+
Step 4: Perform Firmware upgrade
Run the upgrade command to update all OOB components using -F command to upgrade the system:
python ucs-c885a-m8-upgrade.py -B <firmware_bundle.tar.gz> -U <BMC_username> -P <BMC_password> -I <BMC_IP> -F
The script extracts the firmware bundle, validate BMC login, and start the upgrade.
Progress and status for each component is displayed.
Update Status
-------------
IP : 10.x.x.x
Hostname : C885A
Board Serial : 8852444001
Product Name : UCSC-885A-M8-M3X2
Host Power State: Off
GPU Model : MI300X
+------+------------+--------------------+---------------------+-----------------+---------------+-------------------+
| S.No | Component | Running FW version | Packaged FW Version | Update Required | Update Status | Update Percentage |
+------+------------+--------------------+---------------------+-----------------+---------------+-------------------+
| 1 | BMC | 1.1.3 | 1.1.4 | Yes | Triggered | 0 |
+------+------------+--------------------+---------------------+-----------------+---------------+-------------------+
| 2 | BIOS | 1.1.3 | 1.1.4 | Yes | Completed | 100 |
+------+------------+--------------------+---------------------+-----------------+---------------+-------------------+
| 3 | DCSCM-FPGA | 2.02 | 2.03 | Yes | Completed | 100 |
+------+------------+--------------------+---------------------+-----------------+---------------+-------------------+
| 4 | MB-FPGA | 2.02 | 2.03 | Yes | Completed | 100 |
+------+------------+--------------------+---------------------+-----------------+---------------+-------------------+
| 5 | HIB-FPGA | 2.23 | 2.24 | Yes | Completed | 100 |
+------+------------+--------------------+---------------------+-----------------+---------------+-------------------+
Update completed successfully
The GPU update has been completed successfully. Please perform an A/C power cycle to activate.
The BIOS update has been completed successfully. Please power ON the host to activate.
The FPGA update has been completed successfully. Please perform an A/C power cycle to activate.
The BMC update has been successfully triggered and will take approximately 12 minutes to complete. During this time,
the HTTPS service will be unavailable.
Step 5: Post-Upgrade Actions
BMC update: Takes approximately 12 minutes; HTTPS service is going to be unavailable during this time. Wait until service is restored.
BIOS update: Power ON the host to activate.
GPU and FPGA updates: Perform an A/C power cycle to activate.
Step 6: Troubleshooting and TAC Contact
If discovery or upgrade fails, the script collects tech support logs automatically.
Logs are saved as a tar.gz file (Example: C885A-upgrade-logs-<serial>-<date>.tar.gz).
You can find the logs within same folder where the script was run.
Contact Cisco TAC and provide the log file for further assistance.
Cisco UCS C885A M8 Rack Server Data Sheet
UCS C885A M8 Rack Server Spec Sheet