Scripted HPE Firmware and ESXi Software Update

By | June 8, 2017

I’m a big fan of PXE, but sometimes I don’t want to re-image. It may be a system that isn’t connected to PXE, or a system that I don’t have a profile for. In dealing with these one-off systems, I wanted to be able to apply update the firmware, update the ESXi OS, and apply any other changes that I would usually do via PXE (this could be OS settings or low-level settings like ILO).


  1. Enable SSH on the host
  2. Login to the host
  3. wget http://server.fqdn/patch
  4. chmod a+x patch
  5. ./patch
  6. reboot

The patch script handles the following:

  1. Apply BIOS firmware
  2. Apply Array Firmware
  3. Apply NIC Firmware
  4. Apply ILO firmware
  5. Set any new esxi advanced settings (for me this was changing shell timeouts)
  6. Use hponcfg to add a new group to ILO

What you need:

  1. A web server (I use Apache)
  2. HPE smart components (zip files that contain the firmware files
    1. I download the HPE recipe, look for my specific models and create a table of the firmware version and the smart component. This is an example:
    2. Server Type



      Array Controller

      Array Driver

      Array FW

      NIC Type

      NIC Driver

      NIC FW

      BL460c G7

      I27 – 2015.08.16





      BL460c Gen8

      I31 – 2015.06.01





      3. You need to look for the firmware version from the recipe, and then look in the contents.html file for the Online ROM Flash Component for VMware ESXi

      4. Latest ESXi offline bundle (typically an HPE image plus the latest patch combined using PowerCLI imagebuilder). This site has a good info on how to customize an offline bundle

How to setup (assuming your web server is already working)

  1. Add a directory 2017 and 2017/esxi
  2. Copy all of the smart component zip files into the 2017 directory
  3. Put my patch script in the 2017 directory
  4. Unzip the offline bundle in the esxi directory. Unzip the file in the same folder. Edit the index.xml (these instructions from this VMware pdf), ex of index.xml:
    1. <vendorList>
      <name>VMware ESX</name>
  5. In the patch script, update the PROFILENAME to match the name that is used in your offline bundle, add your product in the case statement, update the smart component file names as needed, update the KSERVER with the fqdn of your web server
Category: HP

Leave a Reply

Your email address will not be published. Required fields are marked *