Print

通过ilorest批量刷新HPE ProLiant Gen8/Gen9/Gen10服务器的IP版本

组网及说明

用户需求:批量升级Gen8/Gen9/Gen10 服务器的IP版本

软件版本: 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

问题描述

用户需要批量刷新HPE ProLiant Gen8/Gen9/Gen10服务器的IP版本

过程分析

1. HPE官网下载最新ilorest工具,安装在任意redhat5/6/7或者suse11/12linux系统上。

    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_ip.sh

3. 修改iloinfo.csv里面的ilo信息为用户实际信息,并将该文件也上传到linux系统,举例如下:

    其中第一列为iLOIP地址,第二列为iLO的用户名,第三列为iLO的密码。

    [root@localhost ~]# cat iloinfo.csv

    ip,user,password

    10.12.XX.XX,Administrator,password

    10.12.XX.XX,Administrator,password

4. 脚本内容与执行脚本:

#!/bin/bash
#author="xiaojing.zhao@h3c.com"
#script="Batch Update IP"
#date=`date +%F.%T`

update_ip ()
{
   echo -e "\n================================iLO "$IP"--update Intelligent ProvisiOning==================================" >> 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/IP322.2019_0124.3.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_ip
 echo "Intelligent Provisioning is starting to update !"
done 


  执行脚本命令 ./update_ip.sh

 

  执行脚本后可以登录iLO remove console查看刷新进度(自动刷新)。

 

 

5. 可以查看日志执行情况,在shell脚本的同路径下有个out.log文件

cat out.log

 

 

6. ilo界面查看验证刷新的IP版本

 

解决方法

ilorest virtualmedia 2 http://10.12.175.64/FW/IP322.2019_0124.3.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也同样适用,只需要将http链接中IP镜像更换为Gen9版本的即可。

--如果是Gen8的话(Legacy Mode),默认one time boot settings是只读,无需修改,CD-ROM默认是第一启动项。

Gen8完整脚本如下,执行方法都一样。

#!/bin/bash
#author="xiaojing.zhao@h3c.com"
#script="Batch Update IP"
#date=`date +%F.%T`

update_ip ()
{
   echo -e "\n================================iLO "$IP"--update Intelligent ProvisiOning==================================" >> out.log
   ilorest virtualmedia 2 http://10.12.175.64/FW/IP322.2019_0124.3.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_ip
 echo "Intelligent Provisioning is starting to update !"
done