TheGeekery

The Usual Tech Ramblings

Updating iLO Firmware Using Hponcfg and XML

In the course of updating all of our HP BladeSystem blades (BL465c) servers over the last few weeks, I’ve stumbled across some interesting things. For example, you can updated all the iLO cards at once if you have an Onboard Administrator (OA), a TFTP server, and a little XML knowhow…

1
2
3
4
5
6
7
<RIBCL VERSION="2.0">
        <LOGIN USER_LOGIN="Administrator" PASSWORD="UsingAutoLogin">
                <RIB_INFO MODE="write">
                        <UPDATE_RIB_FIRMWARE IMAGE_LOCATION="tftp://TFTP_SERVER/ilo3_150.bin" />
                </RIB_INFO>
        </LOGIN>
</RIBCL>

This gets saved as an XML file on the TFTP server, I named it update_firmware.xml. The USER_LOGIN and PASSWORD fields do not matter as single sign-on is used from the OA. The iLO update binary is put on the TFTP server as well (you should use the version applicable to the hardware you’re updating). Then comes the easy bit. SSH to the Onboard Administrator, and execute the hponcfg command as such:

1
hponcfg ALL tftp://TFTP_SERVER/update_firmware.xml

If you only need to update a single blade, change ALL to the blade number. Otherwise, this will download the iLO firmware update, push it to each of the iLO cards in the BladeSystem chassis, and then restart them. This will not impact the running server. You should see output like this once it has started:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<!-- Transfering image: 0% complete -->
<!-- Transfering image: 10% complete -->
<!-- Transfering image: 20% complete -->
<!-- Transfering image: 30% complete -->
<!-- Transfering image: 40% complete -->
<!-- Transfering image: 50% complete -->
<!-- Transfering image: 60% complete -->
<!-- Transfering image: 70% complete -->
<!-- Transfering image: 80% complete -->
<!-- Transfering image: 90% complete -->
<!-- Transfering image: 100% complete -->

Bay 15: RIBCL results retrieved.
<!-- ======== START RIBCL RESULTS ======== -->

<!--more output here-->

<?xml version="1.0"?>
<RIBCL VERSION="2.22">
<RESPONSE
    STATUS="0x0000"
    MESSAGE='No error'
     />
<INFORM>Firmware flash in progress [100%].</INFORM>
</RIBCL>
<?xml version="1.0"?>
<RIBCL VERSION="2.22">
<RESPONSE
    STATUS="0x0000"
    MESSAGE='No error'
     />
<INFORM>Firmware flash completed successfully. iLO 3 reset
initiated.</INFORM>
</RIBCL>

And that’s it, the magic is done. Using hponcfg is possible from Windows as well when updating the local machines, so it’s quite possible to use the same XML (though I’ve not tested it).

Comments