on 09-11-2013 06:03 PM - edited on 02-22-2024 10:00 AM by Greg Wilkinson
The Cisco C-Series Cisco Integrated Management Controller (CIMC) software delivers many new features and capabilities including enhancements to the Host Upgrade Utility (HUU). The Host Upgrade Utility enables users to update their CIMC, BIOS, LOM, RAID Controllers, PCI adapters and Cisco VIC cards from a single interface. In previous versions of HUU, an interactive menu-driven command line interface was the only option provided to update system BIOS, CIMC, adapter firmware, and LAN on Motherboard (LOM).
Enhancements to HUU include adding an interactive graphical user interface to HUU and adding non-interactive update capabilities for single-system and multiple-system updates for no touch upgrades of Cisco C-Series Server firmware. Updates can be applied using the bootable image in the HUU ISO which can be mounted via vMedia to boot host to HUU and triggered through the KVM using an interactive update interface. Other tools offering non-interactive updates include a Python update tool and a Microsoft Windows-based tool, both of which offering single-system and multi-system update capabilities.
The Host Update Utility (HUU) is a tool that helps users to update the various levels of firmware running on their system including:
For more information on using the Interactive Utility or the Python Non-Interactive Utility, check out the Getting Started with HUU Guide available here.
Links to Getting Started Videos:
In this video we will use the native utility to update a single system using vKVM attached media and the new HUU Graphical User Interface to update a single system.
In this video we will use the Python Tool to update a single system by passing configuration flags and options through the CLI to a remote target. This is the recommended update process for a one-time update to a single system.
In this video we will use the Python Tool to update a group of systems using a configuration file. We will walk through the encryption setup process for the target CIMC as well as the remote share and how to reference these encrypted files in an update script. This is the recommended update process for updating multiple systems concurrently.
****NOTE: For IMC 3.x and above, Python >= 2.7.9 and OpenSSL >= 1.0.1 are required. For IMC 4.1(3) and above, Python 3 is required.
Download the Utilities:
***New IMC 4.3(3.240022) utilities are posted! Scripts are updated on an "as needed basis" and do not necessarily match the latest release.
I just inherited a C220 M4 with 2.0(6d) running on it. Are the older 3.x NIHUU Python files still available somewhere?
I was wondering the same thing, since the python scripts listed here crashes when trying to upgrade the CIMC
This is the error:
[Information] Needed packages "Crypto.PublicKey.RSA" not available. Cannot support password encryption feature.
[Information] Needed packages "Crypto.Random" not available. Cannot support password encryption feature.
Total of 1 servers firmware to be updated.
Updating firmware.....
[Information] Needed packages "Crypto.PublicKey.RSA" not available. Cannot support password encryption feature.
[Information] Needed packages "Crypto.Random" not available. Cannot support password encryption feature.
Process Process-1:
Traceback (most recent call last):
File "C:\Users\Dal\AppData\Local\Programs\Python\Python310\lib\multiprocessing\process.py", line 315, in _bootstrap
self.run()
File "C:\Users\Dal\AppData\Local\Programs\Python\Python310\lib\multiprocessing\process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\Dal\Desktop\huu\update_firmware-4.2.3b.py", line 3782, in HuuHandleFirmwareUpdate
responseData = HuuProcessPendingWork(logger, work)
File "C:\Users\Dal\Desktop\huu\update_firmware-4.2.3b.py", line 3747, in HuuProcessPendingWork
work.HuuUpdateSendFirmwareUpdate(logger)
File "C:\Users\Dal\Desktop\huu\update_firmware-4.2.3b.py", line 898, in HuuUpdateSendFirmwareUpdate
responseData = self.ConfigConfMo(logger)
File "C:\Users\Dal\Desktop\huu\update_firmware-4.2.3b.py", line 2101, in ConfigConfMo
configMoRequest = configMoRequest.replace('remoteIpValue', self.remoteShareIp)
TypeError: replace() argument 2 must be str, not None
We do not have the legacy based scripts available. However, M4 platforms can use the 4.0(2) scripts - and required crypto packages are called out in the readme file.
i ave the same issue as the user above
Traceback (most recent call last):
File "/Users/m7517628/.pyenv/versions/3.8.11/lib/python3.8/multiprocessing/process.py", line 315, in _bootstrap
self.run()
File "/Users/m7517628/.pyenv/versions/3.8.11/lib/python3.8/multiprocessing/process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "/Users/m7517628/Downloads/Python Tools 4.2(3b)/update_firmware-4.2.3b.py", line 3783, in HuuHandleFirmwareUpdate
responseData = HuuProcessPendingWork(logger, work)
File "/Users/m7517628/Downloads/Python Tools 4.2(3b)/update_firmware-4.2.3b.py", line 3748, in HuuProcessPendingWork
work.HuuUpdateSendFirmwareUpdate(logger)
File "/Users/m7517628/Downloads/Python Tools 4.2(3b)/update_firmware-4.2.3b.py", line 898, in HuuUpdateSendFirmwareUpdate
responseData = self.ConfigConfMo(logger)
File "/Users/m7517628/Downloads/Python Tools 4.2(3b)/update_firmware-4.2.3b.py", line 2109, in ConfigConfMo
configMoRequest = configMoRequest.replace('userNameValue', self.remoteShareUser)
TypeError: replace() argument 2 must be str, not None
remoteShareUser will be None as i am trying to mount vMedia via www http:// endpoint which requires no authentication.
Does --sharetype www support specifying a port number?
update_firmware-4.2.3b.py --sharetype www --remoteshareip=http://webserver.company.local:8001 --imagefile=ucs-c220m5-huu-4.2.3g.iso ...
And I assume this means the CIMC needs firewall access to the webserver?
Has anyone had success using the script lately?
I am trying to updates UCS M5 and running in to same issue as reported by money.mark and dal.
Total of 1 servers firmware to be updated.
Updating firmware.....
[Information] Needed packages "Crypto.PublicKey.RSA" not available. Cannot support password encryption feature.
[Information] Needed packages "Crypto.Random" not available. Cannot support password encryption feature.
Process Process-1:
Traceback (most recent call last):
File "C:\Users\AppData\Local\Programs\Python\Python311\Lib\multiprocessing\process.py", line 314, in _bootstrap
self.run()
File "C:\Users\AppData\Local\Programs\Python\Python311\Lib\multiprocessing\process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\Desktop\Python Tools 4.2(3b)\Python Tools 4.2(3b)\update_firmware-4.2.3b.py", line 3782, in HuuHandleFirmwareUpdate
responseData = HuuProcessPendingWork(logger, work)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Desktop\Python Tools 4.2(3b)\Python Tools 4.2(3b)\update_firmware-4.2.3b.py", line 3747, in HuuProcessPendingWork
work.HuuUpdateSendFirmwareUpdate(logger)
File "C:\Users\Desktop\Python Tools 4.2(3b)\Python Tools 4.2(3b)\update_firmware-4.2.3b.py", line 898, in HuuUpdateSendFirmwareUpdate
responseData = self.ConfigConfMo(logger)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Desktop\Python Tools 4.2(3b)\Python Tools 4.2(3b)\update_firmware-4.2.3b.py", line 2101, in ConfigConfMo
configMoRequest = configMoRequest.replace('remoteIpValue', self.remoteShareIp)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: replace() argument 2 must be str, not None
Running the HUU and getting an error. I know that version 4.2.3b has been released but there isn't any difference between that and 4.2.2a other than updating the version number.
INFO: 2023-09-18 17:31:16,489 - MainProcess - 410 - NIHUU Script(update_firmware.py) Version: 4.2.2a
INFO: 2023-09-18 17:31:16,489 - MainProcess - 410 - Hello from the main process
INFO: 2023-09-18 17:31:16,490 - MainProcess - 410 - useHttps: yes
INFO: 2023-09-18 17:31:16,490 - MainProcess - 410 - update_timeout: 120
INFO: 2023-09-18 17:31:16,490 - MainProcess - 410 - update_stop_on_error: no
INFO: 2023-09-18 17:31:16,490 - MainProcess - 410 - update_verify: yes
INFO: 2023-09-18 17:31:16,490 - MainProcess - 410 - useCimcSecure: no
INFO: 2023-09-18 17:31:16,490 - MainProcess - 410 - skipmemorytest: Enabled
INFO: 2023-09-18 17:31:16,490 - MainProcess - 410 - update_component: all
INFO: 2023-09-18 17:31:16,490 - MainProcess - 410 - reboot_cimc: no
INFO: 2023-09-18 17:31:16,490 - MainProcess - 410 - remoteshareip: REDACTED
INFO: 2023-09-18 17:31:16,490 - MainProcess - 410 - sharedirectory: /repo/cisco/firmware/latest
INFO: 2023-09-18 17:31:16,491 - MainProcess - 410 - sharetype: www
DEBUG: 2023-09-18 17:31:17,496 - Process-1 - 421 - Found an entry in the work queue
INFO: 2023-09-18 17:31:17,497 - Process-1 - 421 - Initiating Login to CIMC REDACTED
DEBUG: 2023-09-18 17:31:17,498 - Process-1 - 421 - Login request data==><aaaLogin inName='automation' inPassword='********'></aaaLogin>
DEBUG: 2023-09-18 17:31:17,498 - Process-1 - 421 - Trying Login 0
DEBUG: 2023-09-18 17:31:18,649 - Process-1 - 421 - Login response==><aaaLogin cookie=\\\\ response=\\yes\\ outCookie=\\1695058300/c43f206f-05a5-15a5-8032-84a2a380e8d4\\ outRefreshPeriod=\\600\\ outPriv=\\admin\\ outSessionId=\\63\\ outVersion=\\4.0(2c)\\> </aaaLogin>
DEBUG: 2023-09-18 17:31:18,653 - Process-1 - 421 - Successful Login with default password
INFO: 2023-09-18 17:31:18,653 - Process-1 - 421 - Successfully logged in to CIMC REDACTED
DEBUG: 2023-09-18 17:31:18,653 - Process-1 - 421 - ConfigResolve request data==><configResolveClass cookie=\\1695058300/c43f206f-05a5-15a5-8032-84a2a380e8d4\\ inHierarchical=\\false\\ classId=\\computeBoard\\/>
DEBUG: 2023-09-18 17:31:18,653 - Process-1 - 421 - configRsvRequest uri data==>https://REDACTED:443/nuova
DEBUG: 2023-09-18 17:31:19,300 - Process-1 - 421 - CIMC (REDACTED) ConfigResolve response==><configResolveClass cookie=\\1695058300/c43f206f-05a5-15a5-8032-84a2a380e8d4\\ response=\\yes\\ classId=\\computeBoard\\>
INFO: 2023-09-18 17:31:19,301 - MainProcess - 410 - Processing the completion status of a request
DEBUG: 2023-09-18 17:31:19,300 - Process-1 - 421 - Reboot CIMC =no
INFO: 2023-09-18 17:31:19,301 - MainProcess - 410 - First check if the CIMC (REDACTED) supports remote firmware update
DEBUG: 2023-09-18 17:31:19,300 - Process-1 - 421 - Not Calling CIMC Reboot
DEBUG: 2023-09-18 17:31:20,303 - Process-1 - 421 - Found an entry in the work queue
DEBUG: 2023-09-18 17:31:20,303 - Process-1 - 421 - ConfigResolve request data==><configResolveClass cookie=\\1695058300/c43f206f-05a5-15a5-8032-84a2a380e8d4\\ inHierarchical=\\false\\ classId=\\huuController\\/>
DEBUG: 2023-09-18 17:31:20,303 - Process-1 - 421 - configRsvRequest uri data==>https://REDACTED:443/nuova
INFO: 2023-09-18 17:31:20,853 - MainProcess - 410 - Processing the completion status of a request
INFO: 2023-09-18 17:31:20,854 - MainProcess - 410 - Initiating firmware update for server with CIMC (REDACTED)
DEBUG: 2023-09-18 17:31:20,852 - Process-1 - 421 - CIMC (REDACTED) ConfigResolve response==><configResolveClass cookie=\\1695058300/c43f206f-05a5-15a5-8032-84a2a380e8d4\\ response=\\yes\\ classId=\\huuController\\>
DEBUG: 2023-09-18 17:31:21,855 - Process-1 - 421 - Found an entry in the work queue
DEBUG: 2023-09-18 17:31:21,855 - Process-1 - 421 - ConfigResolve request data==><configResolveClass cookie=\\1695058300/c43f206f-05a5-15a5-8032-84a2a380e8d4\\ inHierarchical=\\false\\ classId=\\biosVfCiscoAdaptiveMemTraining\\/>
DEBUG: 2023-09-18 17:31:21,855 - Process-1 - 421 - configRsvRequest uri data==>https://REDACTED:443/nuova
DEBUG: 2023-09-18 17:31:22,681 - Process-1 - 421 - CIMC (REDACTED) ConfigResolve response==><configResolveClass cookie=\\1695058300/c43f206f-05a5-15a5-8032-84a2a380e8d4\\ response=\\yes\\ classId=\\biosVfCiscoAdaptiveMemTraining\\>
DEBUG: 2023-09-18 17:31:22,681 - Process-1 - 421 - CIMC (REDACTED) configMoRequest response==><configResolveClass cookie=\\1695058300/c43f206f-05a5-15a5-8032-84a2a380e8d4\\ response=\\yes\\ classId=\\biosVfCiscoAdaptiveMemTraining\\>
DEBUG: 2023-09-18 17:31:22,682 - Process-1 - 421 - aep secure firwmare downgrade : aep security check request data==><configConfMo cookie='1695058300/c43f206f-05a5-15a5-8032-84a2a380e8d4' dn='sys/rack-unit-1/bios/bios-settings/DCPMM-Firmware-Downgrade' inHierarchical='false'><inConfig><biosVfDCPMMFirmwareDowngrade dn=\\sys/rack-unit-1/bios/bios-settings/DCPMM-Firmware-Downgrade\\ vpDCPMMFirmwareDowngrade=\\Disabled\\/></inConfig></configConfMo>
DEBUG: 2023-09-18 17:31:22,682 - Process-1 - 421 - dclRequest uri data==>https://REDACTED:443/nuova
DEBUG: 2023-09-18 17:31:23,616 - Process-1 - 421 - Persistent Memory disable security check Sent.
DEBUG: 2023-09-18 17:31:23,616 - Process-1 - 421 - Did not get response for Intel persistent memory secure firmware downgrade request for CIMC (REDACTED)
DEBUG: 2023-09-18 17:31:23,616 - Process-1 - 421 - usbRequest==><configResolveDn cookie='1695058300/c43f206f-05a5-15a5-8032-84a2a380e8d4' inHierarchical='false' dn='sys/rack-unit-1/mgmt/fw-system'/>
DEBUG: 2023-09-18 17:31:23,616 - Process-1 - 421 - usbRequest uri data==>https://REDACTED:443/nuova
DEBUG: 2023-09-18 17:31:24,279 - Process-1 - 421 - CIMC (REDACTED) configMoRequest response==><configResolveDn cookie=\\1695058300/c43f206f-05a5-15a5-8032-84a2a380e8d4\\ response=\\yes\\ dn=\\sys/rack-unit-1/mgmt/fw-system\\>
DEBUG: 2023-09-18 17:31:24,280 - Process-1 - 421 - usbRequest==><configResolveDn cookie='1695058300/c43f206f-05a5-15a5-8032-84a2a380e8d4' inHierarchical='false' dn='sys/rack-unit-1/'/>
DEBUG: 2023-09-18 17:31:24,280 - Process-1 - 421 - usbRequest uri data==>https://REDACTED:443/nuova
DEBUG: 2023-09-18 17:31:25,694 - Process-1 - 421 - CIMC (REDACTED) configMoRequest response==><configResolveDn cookie=\\1695058300/c43f206f-05a5-15a5-8032-84a2a380e8d4\\ response=\\yes\\ dn=\\sys/rack-unit-1/\\>
DEBUG: 2023-09-18 17:31:25,695 - Process-1 - 421 - CIMC Version:4.0(2c), ServerModel:UCSC-C220-M5SX
DEBUG: 2023-09-18 17:31:25,695 - Process-1 - 421 - disable_uefi_secure_boot value is no
DEBUG: 2023-09-18 17:31:25,695 - Process-1 - 421 - Secure Boot is not Supported - NIHUU
DEBUG: 2023-09-18 17:31:25,695 - Process-1 - 421 - UEFI secure boot request data==><configResolveClass cookie='1695058300/c43f206f-05a5-15a5-8032-84a2a380e8d4' inHierarchical='false' classId='lsbootBootSecurity'/>
DEBUG: 2023-09-18 17:31:25,695 - Process-1 - 421 - usbRequest uri data==>https://REDACTED:443/nuova
DEBUG: 2023-09-18 17:31:26,353 - Process-1 - 421 - CIMC (REDACTED) configMoRequest response==><configResolveClass cookie=\\1695058300/c43f206f-05a5-15a5-8032-84a2a380e8d4\\ response=\\yes\\ classId=\\lsbootBootSecurity\\>
DEBUG: 2023-09-18 17:31:26,353 - Process-1 - 421 - Catalog Response UEFI boot rsp [ <configResolveClass cookie=\\1695058300/c43f206f-05a5-15a5-8032-84a2a380e8d4\\ response=\\yes\\ classId=\\lsbootBootSecurity\\>
DEBUG: 2023-09-18 17:31:26,353 - Process-1 - 421 - feature flag === (True)
DEBUG: 2023-09-18 17:31:26,353 - Process-1 - 421 - FLag for cimc secure boot in COnfMO== (True)
DEBUG: 2023-09-18 17:31:26,353 - Process-1 - 421 - CIMC SECURE BOOT VALUE == (no)
DEBUG: 2023-09-18 17:31:26,353 - Process-1 - 421 - FLag for cmc secure boot in COnfMO== (False)
DEBUG: 2023-09-18 17:31:26,353 - Process-1 - 421 - CMC SECURE BOOT VALUE == (no)
DEBUG: 2023-09-18 17:31:26,353 - Process-1 - 421 - CMC node present VALUE == (False)
DEBUG: 2023-09-18 17:31:26,353 - Process-1 - 421 - configMoRequest request data==><configConfMo*********cookie='1695058300/c43f206f-05a5-15a5-8032-84a2a380e8d4'*********dn='sys/huu/firmwareUpdater'>*********<inConfig>*********<huuFirmwareUpdater*********dn='sys/huu/firmwareUpdater'******************adminState='trigger'*********remoteIp='REDACTED'*********remoteShare='/repo/cisco/firmware/latest/ucs-c220m5-huu-4.2.3e.iso'*********mapType='www'*********username='*********'*********password='*********'*********stopOnError='no'*********timeOut='120'*********verifyUpdate='yes'*********updateComponent='all'*********updateType='immediate'*********cimcSecureBoot='no'*********skipMemoryTest='Enabled'******************/></inConfig></configConfMo>
DEBUG: 2023-09-18 17:31:27,206 - Process-1 - 421 - CIMC (REDACTED) configMoRequest response==><error cookie=\\\\ response=\\yes\\ errorCode=\\ERR-xml-parse-error\\ invocationResult=\\594\\ errorDescr=\\XML PARSING ERROR: Element 'huuFirmwareUpdater', attribute 'skipMemoryTest': The attribute 'skipMemoryTest' is not allowed.
ERROR: 2023-09-18 17:31:27,207 - Process-1 - 421 - Not able to parse this string.
INFO: 2023-09-18 17:31:27,208 - MainProcess - 410 - Processing the completion status of a request
ERROR: 2023-09-18 17:31:27,207 - Process-1 - 421 - CIMC (REDACTED) Firmware Update request error code: -1
ERROR: 2023-09-18 17:31:27,207 - Process-1 - 421 - CIMC (REDACTED) Firmware update request failure reason, errorDescr: XML PARSING ERROR
INFO: 2023-09-18 17:31:27,209 - MainProcess - 410 - self.uefifeature is true. Enabling the feature in logout
INFO: 2023-09-18 17:31:27,209 - MainProcess - 410 - Logout request data==><aaaLogout cookie=\\1695058300/c43f206f-05a5-15a5-8032-84a2a380e8d4\\ inCookie=\\1695058300/c43f206f-05a5-15a5-8032-84a2a380e8d4\\> </aaaLogout>
INFO: 2023-09-18 17:31:27,498 - MainProcess - 410 - Logout response==><aaaLogout cookie=\\1695058300/c43f206f-05a5-15a5-8032-84a2a380e8d4\\ response=\\yes\\ outStatus=\\success\\> </aaaLogout>
INFO: 2023-09-18 17:31:27,498 - MainProcess - 410 - Completed update process
DEBUG: 2023-09-18 17:31:28,500 - Process-1 - 421 - Exiting child process
Hello, I want to update my c220 servers firmware to version 4.2(3e), How can i do it?
are the available versions are?:
Updated with latest 4.2(3) and 4.3(2) versions.
what do I need to download?
You can download the 4.2(3h) files. Feel free to use the 4.2(3e) HUU iso, should that be the release you are looking for.
Hi, after i ran the script I received Error "ISO Mapping Error", this is the "data" i sending:
-a xxx.xxx.xxx.xxx -u xxx -p xxx -m xxxx.iso -i https://xxx.xxx.xxx.xxx -d /cisco_firmware/ -t nfs -y all.
What i need to do?
and i have another question, does the script is dependent of current version of firmware on the server?
You could try the answer file.
Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: