用户需求:如何使用SPP批量升级Gen8/Gen9/Gen10 服务器的所有固件版本
软件版本: ilorest-2.3.X以上版本
系统版本:
Red Hat Enterprise Linux 5 Server (x86-64)
Red Hat Enterprise Linux 6 Server (x86-64)
Red Hat Enterprise Linux 7 Server
SUSE Linux Enterprise Server 11 (AMD64/EM64T)
SUSE Linux Enterprise Server 12
如何使用SPP批量升级Gen8/Gen9/Gen10 服务器的所有固件版本
1. 在HPE官网下载最新ilorest工具,安装在任意redhat5/6/7或者suse11/12的linux系统上。
https://support.hpe.com/hpsc/swd/public/detail?swItemId=MTX_f738de6ff67a44579ba3bda458#tab-history
安装命令:rpm -ivh ilorest-2.3.3-7.x86_64.rpm
2. 上传shell脚本和到linux系统,并赋予可执行权限
chmod +x update_spp.sh
3. 修改iloinfo.csv里面的ilo信息为用户实际信息,并将该文件也上传到linux系统,举例如下:
其中第一列为iLO的IP地址,第二列为iLO的用户名,第三列为iLO的密码。
[root@localhost ~]# cat iloinfo.csv
ip,user,password
10.12.XX.XX,Administrator,password
10.12.XX.XX,Administrator,password
4. 脚本内容与执行脚本:
#author="xiaojing.zhao@h3c.com"
#script="Batch Update SPP"
#date=`date +%F.%T`
{
echo -e "\n================================iLO "$IP"--update spp==================================" >> out.log
ilorest list --select HpServerBootSettings. -u "$USER" -p "$PASSWD" --url="$IP" | awk '/PersistentBootConfigOrder/,/Type=HpServerBootSettings/{if(i>=1)print x;x=$0;i++}' >> out.log
ilorest set PersistentBootCOnfigOrder=[CD.Virtual.2.1] --select HpServerBootSettings. --commit -u "$USER" -p "$PASSWD" --url="$IP" >> out.log
ilorest virtualmedia 2 http://10.12.175.64/FW/SPP2018110.iso --bootnextreset -u "$USER" -p "$PASSWD" --url="$IP" >> out.log
ilorest reboot ForceRestart -u "$USER" -p "$PASSWD" --url="$IP" >> out.log
}
for LINE in `cat iloinfo.csv | sed '1d'`
do
IP=`echo $LINE | awk -F, '{print $1}'`
USER=`echo $LINE | awk -F, '{print $2}'`
PASSWD=`echo $LINE | awk -F, '{print $3}'`
#echo "test" $IP
update_spp
echo "SPP is starting to update!"
done
执行脚本命令 ./update_spp.sh
执行脚本后可以登录iLO remove console查看刷新进度(自动刷新)。
刷新完成后,自动重启,无需人工干预。
5. 可以查看日志执行情况,在shell脚本的同路径下有个out.log文件
cat out.log
6. 到ilo界面查看验证刷新的固件版本
ilorest virtualmedia 2 http://10.12.XX.XX/FW/SPP2018110.iso --bootnextreset -u "$USER" -p "$PASSWD" --url="$IP" >> out.log
--这里的http web服务器是需要自行配置的,然后将SPP的镜像文件放到http web服务器即可。其中--bootnextreset参数表示下次启动自动reset。
ilorest set PersistentBootCOnfigOrder=[CD.Virtual.2.1] --select HpServerBootSettings.
这条语句是将CD-ROM设置为第一启动项 (one time boot settings)。
--脚本中我以Gen10为例,Gen9测试也同样适用(UEFI Mode)。如下截图所示:
刷新完成自动重启,登录iLO界面验证固件版本即可。
--如果是Gen8的话(Legacy Mode),这里第一启动项属性需要修改为如下内容:
ilorest set Boot/BootSourceOverrideSupported=[Cd] --select=ComputerSystem.
Gen8完整脚本如下,执行方法都一样
#!/bin/bash
#author="xiaojing.zhao@h3c.com"
#script="Batch Update SPP"
#date=`date +%F.%T`
update_spp ()
{
echo -e "\n================================iLO "$IP"--update spp==================================" >> out.log
ilorest list --select ComputerSystem. -u "$USER" -p "$PASSWD" --url="$IP" | awk '/Boot=/,/BootSourceOverrideTarget=None/{if(i>=1)print x;x=$0;i++}' >> out.log
ilorest set Boot/BootSourceOverrideSupported=[Cd] --select=ComputerSystem. --commit -u "$USER" -p "$PASSWD" --url="$IP" >> out.log
ilorest virtualmedia 2 http://10.12.175.64/FW/SPP2018110.iso --bootnextreset -u "$USER" -p "$PASSWD" --url="$IP" >> out.log
ilorest reboot ForceRestart -u "$USER" -p "$PASSWD" --url="$IP" >> out.log
}
for LINE in `cat iloinfo.csv | sed '1d'`
do
IP=`echo $LINE | awk -F, '{print $1}'`
USER=`echo $LINE | awk -F, '{print $2}'`
PASSWD=`echo $LINE | awk -F, '{print $3}'`
#echo "test" $IP
update_spp
echo "SPP is starting to update!"
done