批量升级ILO2以让HP服务器支持ipmi

     2014年08月19日       磊磊syh       运维笔记->系统管理       ipmi ilo ipmitool 

HP机型的IPMI支持情况

对于老的HP服务器或刀片,比如HP DL360 G5、HP DL 580 G5、HP BL460c1、HP BL460G6默认使用的iLO版本较低,默认只能通过HP的专有管理工具来操作,无法使用ipmitool来操作。给管理上带来的麻烦是无法使用标准的ipmi工具来做统一管理。让带外支持统一的ipmi对于运维来说是大有好处的。

下载固件

到HP 官方网站下载新的ILO2固件。下载地址:http://h20000.www2.hp.com/bizsupport/TechSupport/SoftwareIndex.jsp?lang=en&cc=us&prodNameId=1135772&prodTypeId=18964&prodSeriesId=1146658&swLang=8&taskId=135&swEnvOID=1005
下载一个2.0以上的版本,比如我现在下载一个2.12的版本。

解压固件,获取bin升级包

下载下来的iLO固件是一个exe的文件,实际上是一个压缩文件,我们可以用rar将其解压。获得可以用于命令行升级的bin文件
ilo2解压1
解压后即得到ilo的bin文件
ilo2解压2

将bin升级包放到带外网络可以访问的http服务器上

使用批量升级脚本升级iLO

我的批量升级脚本如下

#!/bin/bash
# 需要升级iLO的带外地址列表
ips='
192.168.1.1
'
# iLO升级包的http路径,注意,需要可以被带外网络访问到
ILO_URL='http://192.168.1.254/ilo2_212.bin'
# iLO的管理员账号
USER='ilo_user'
# iLO的管理员密码
PASS='ilo_pass'
 
firmware_update(){
expect<<EOF
        set timeout 25
        spawn ssh -o  StrictHostKeyChecking=no $USER@$HOST
        expect "assword:"
        send "$PASS\r"
        expect "> "
        #有的机器的iLO2 路径是map1/firmware1
        #有的机器的路径是map1/firmware,操作的时候需要根据具体情况做一下修改
        send "cd map1/firmware1\r"
        expect "> "
        send "load -source $ILO_URL\r\n"
        expect {
                "stauts=0" {exit 0}
                "status=2" {exit 1}
        }
EOF
}
for i in $ips
do
        HOST=$i
        firmware_update
done