CSCfi.hp-firmware-upgrade
ansible-role-hp-firmware-upgrade
This is an Ansible role designed to help you upgrade the firmware for HP systems.
Overview
For HPE Gen10 firmwares, you need to create a list of variables to specify which firmware packages you want to upgrade. Unlike Gen8 and Gen9 upgrade tasks, it is now the administrator's job to find the right firmware for the servers being managed.
You can find the latest firmware for your server model by visiting the HPE Support Center or by using the command:
dnf search <packagetoupgrade.rpm>
This will show you the latest versions available in your configured repositories (assuming you have the HP repositories set up).
Example Firmware List
Here’s an example of how to set the firmware_list
variable for an HPE Apollo 4200 server. It’s a good idea to comment out firmware entries until you're ready to upgrade them.
firmware_list:
# - { upgrade_target: 'ILO 5', hp_repository: fwpp, firmware: firmware-ilo5, extra: "", upgrade: false, local_installation: false, local_file: "", reboot: false }
- { upgrade_target: 'BIOS', hp_repository: fwpp, firmware: firmware-system-u39, extra: "", upgrade: true, local_installation: false, local_file: "", reboot: true }
# - { upgrade_target: 'HPE Smart Array P816i-a SR Gen10', hp_repository: fwpp, firmware: firmware-smartarray-f7c07bdbbd, extra: "", upgrade: false, local_installation: false, local_file: "", reboot: true }
# - { upgrade_target: 'HPE 14TB 12G SAS HDD', hp_repository: fwpp, firmware: firmware-hdd-cf0b6cabe1, extra: "", upgrade: false, local_installation: false, local_file: "", reboot: false }
# - { upgrade_target: 'SSD MR00480GXBGH Drive', hp_repository: fwpp , firmware: firmware-hdd-8f9bf23306, extra: "", upgrade: false, local_installation: false, local_file: "", reboot: false }
# - { upgrade_target: 'NVMe', hp_repository: fwpp, firmware: 'firmware-hdd-MPK76H5Q', extra: "", upgrade: false, local_installation: false, local_file: "", reboot: false }
# - { upgrade_target: 'NVMe backplane', hp_repository: spp , firmware: firmware-nvmebackplane-gen10, extra: "", upgrade: false, local_installation: false, local_file: "", reboot: false }
# - { upgrade_target: 'HPE Ethernet 1Gb 2-port 332i Adapter - NIC', hp_repository: spp, firmware: firmware-nic-broadcom, extra: "", upgrade: false, local_installation: false, local_file: "", reboot: false }
# - { upgrade_target: 'HPE Eth 10/25Gb 2p 631SFP28 Adapter -NIC', hp_repository: spp, firmware: firmware-nic-bcm-nxe, extra: kmod-bnxt_en, upgrade: false, local_installation: false, local_file: "", reboot: false }
# - { upgrade_target: 'HPE Innovation Engine', hp_repository: spp, firmware: firmware-iegen10, extra: "", upgrade: false, local_installation: false, local_file: "", reboot: false }
# - { upgrade_target: 'Power Management Controller', hp_repository: spp, firmware: firmware-powerpic-gen10, extra: "", upgrade: false, local_installation: false, local_file: "", reboot: false }
- { upgrade_target: 'Server Platform Services (SPS)', hp_repository: fwpp, firmware: firmware-spsgen10, extra: "", upgrade: true, local_installation: false, local_file: "", reboot: false }
Components Upgraded for Gen8 and Gen9 HP Servers
This role can upgrade the following components:
- iLO (version 4 or higher)
- System ROM
- Power Management Controller
- Smart Array disk controller
- Disk Drive
- Disk Backplane Expander
- Intel Network Adapter
- Mellanox Infiniband-ethernet Adapter (VPI)
- Qlogic Network Adapter (nx2)
Requirements
For the machine where the firmware upgrade will occur:
- You need to configure Yum to access the Firmware Upgrade for Proliant repository.
- It is also compatible with the SPP.
- If you have a Yum mirror that stores old RPMs (meaning you have hp-firmware-hdd and firmware-hdd RPMs), this role may attempt to perform more firmware "upgrades" than necessary. Contributions to improve this are welcome.
Supported HP Proliant Generations
- Gen8
- Gen9
- Gen10
- If you have tested this role on other generations, please inform us via an issue or pull request.
Role Variables
By default, this role upgrades firmware for all the listed devices. You can customize your selection by editing defaults/main.yml
.
Installation
Run the following command to install the role:
$ ansible-galaxy install CSCfi.hp-firmware-upgrade
Dependencies
You must have the role CSCfi.hp-firmware-upgrade
installed.
Example Playbook
You can use this role simply by including it in your playbook like this:
- hosts: servers
roles:
- { role: CSCfi.hp-firmware-upgrade }
License
MIT
Author Information
This role was created by Karan Singh.
Contributions
This role automates HP firmware upgradation process using ansible
ansible-galaxy install CSCfi.hp-firmware-upgrade