使用方法:
在需要初始化ilo的机器上执行
chmod +x IloInstall.sh && bash IloInstall.sh
兼容性
centos6/7/8
Redhat6/7/8
Ilo版本1/2/3/4/5
功能:
-
自动升级 ilo到最新版本,如果有新的版本,可以去脚本中替换
ilo1
CP023365.scexe
ilo2
CP035238.scexe
ilo3
CP046328.scexe
ilo4
CP046465.scexe
ilo5
firmware-ilo5-1.48-1.1.x86_64.rpm
firmware-ilo5-2.44-1.1.x86_64.rpm -
自动初始化ilo地址,为172.16.*** (***是生产IP的后两个,例如生产ip是192.168.8.8,ILO地址就是172.16.8.8)
-
自动初始化ILO的账户密码,账户为Administrator,密码为Abc***(***为ilo地址,例如172.16.8.8 的密码为Abc172.16.8.8)
-
自动初始化ILO主机的名字为生产IP,方便后期在Oneview中管理
所有需要的包都在
https://download.csdn.net/download/qq_26129413/24158650
#!/bin/bash
## 2021-9-22
_Red="\033[31m#"
_Green="\033[32m#"
_End="\033[0m"
wget http://192.168.1.8/hponcfg-5.5.0-0.x86_64.rpm ###把包都放在了一台内网nginx服务器上,方便下载
wget http://192.168.1.8/linux-LOsamplescripts5.20.0.tgz ###下载hponcfg的配置文件
tar zxf /root/linux-LOsamplescripts5.20.0.tgz -C /mnt/ && rpm -ivh hponcfg-5.5.0-0.x86_64.rpm >/dev/null 2>&1 ###安装hponcfg 并把配置文件解压到/mnt下
### IloInitialize 是初始化动作,包含修改ilo地址 修改用户名密码等
IloInitialize(){
#ILONAME=$(ifconfig $( ip route show | awk '/default/ { print $5 }' ) |sed -n 2p |awk -F ' ' '{print$2}')
ILONAME=$(ifconfig $( ip route show | awk '/default/ { print $5 }' ) |sed -n 2p |awk -F ' ' '{print$2}' |sed 's/.*://')
if [[ $? -eq 0 ]];then
echo -e "$_Green 生产IP获取成功 $_End";
sleep 0.5;
else
echo -e "$_Red 生产IP获取失败 $_End";
exit;
fi
ILOCODE=ILO$(dmidecode -t system|grep 'Serial Number'|awk '{print $3}')
if [[ $? -eq 0 ]];then
echo -e "$_Green SN号获取成功 $_End";
sleep 0.5;
else
echo -e "$_Red SN号获取失败 $_End";
exit;
fi
ILOIP=172.16.$(ifconfig $( ip route show | awk '/default/ { print $5 }' ) |sed -n 2p |awk -F ' ' '{print$2}'|awk -F '.' '{print $3"."$4}')
if [[ $? -eq 0 ]];then
echo -e "$_Green ILO地址获取成功 $_End";
sleep 0.5;
else
echo -e "$_Red ILO地址获取失败 $_End";
exit;
fi
cat << EOF > /mnt/Administrator_reset_pw.xml
<!-- RIBCL Sample Script for HPE Lights-Out Products -->
<!-- Copyright 2003,2016 Hewlett Packard Enterprise Development LP -->
<!-- Description: This is a sample XML script to set the default -->
<!-- Administrator account password using HPONCFG.EXE. -->
<!-- NOTE: You will need to replace the USER_LOGIN and PASSWORD -->
<!-- and other values inside the quotation marks with values -->
<!-- that are appropriate for your environment. -->
<!-- Use this script with HPONCFG to install a known password -->
<!-- for the Administrator account. HPONCFG requires that you-->
<!-- log into Windows or Linux with administrator or root -->
<!-- credentials. -->
<!-- Note that this assumes that there is an Administrator -->
<!-- account because it is not intended to create one. The -->
<!-- LOGIN credentials are ignored when used with HPONCFG. -->
<!-- After this script has been used successfully with HPONCFG-->
<!-- you may login using the credentials: "Administrator" and -->
<!-- "password". -->
<!-- Use HPQLOCFG.EXE v1.00 or greater with this script. -->
<!-- See "iLO Scripting and Command Line Guide" for more -->
<!-- information on scripting and the syntax of the RIBCL -->
<!-- XML. -->
<!-- Firmware support information for this script: -->
<!-- iLO 5 - All versions. -->
<!-- iLO 4 - All versions. -->
<!-- iLO 3 - All versions. -->
<RIBCL VERSION="2.0">
<LOGIN USER_LOGIN="adminname" PASSWORD="password">
<USER_INFO MODE="write">
<MOD_USER USER_LOGIN="Administrator">
<PASSWORD value="pmphilo$ILOIP"/>
</MOD_USER>
</USER_INFO>
</LOGIN>
</RIBCL>
EOF
sleep 0.5
hponcfg -f /mnt/Administrator_reset_pw.xml
sleep 0.5
cat << EOF > /mnt/Mod_Network_Settings.xml
<!-- RIBCL Sample Script for HPE Lights-Out Products -->
<!-- Copyright 2003,2017 Hewlett Packard Enterprise Development LP -->
<!-- Description: This is a sample XML script to configure the -->
<!-- network settings for Integrated Lights-Out(iLO). -->
<!-- NOTE: You will need to replace the USER_LOGIN and PASSWORD -->
<!-- and other values inside the quotation marks with values -->
<!-- that are appropriate for your environment. -->
<!-- Double check all values before executing this script. -->
<!-- Incorrect or mismatched network settings may cause you -->
<!-- to lose the ability to connect to your Lights-Out device.-->
<!-- Use HPQLOCFG.EXE v1.00 or greater with this script. -->
<!-- See "iLO Scripting and Command Line Guide" for more -->
<!-- information on scripting and the syntax of the RIBCL -->
<!-- XML. -->
<!-- Firmware support information for this script: -->
<!-- iLO 5 - All versions -->
<!-- iLO 4 - All versions. -->
<!-- iLO 3 - All versions. -->
<RIBCL VERSION="2.0">
<LOGIN USER_LOGIN="adminname" PASSWORD="password">
<RIB_INFO MODE="write">
<MOD_NETWORK_SETTINGS>
<ENABLE_NIC value="Yes"/>
<REG_DDNS_SERVER value="Yes"/>
<PING_GATEWAY value="Yes"/>
<DHCP_DOMAIN_NAME value="Yes"/>
<SPEED_AUTOSELECT value="YES"/>
<NIC_SPEED value="100"/>
<FULL_DUPLEX value="Yes"/>
<DHCP_ENABLE value="No"/>
<IP_ADDRESS value="$ILOIP"/>
<SUBNET_MASK value="255.255.0.0"/>
<GATEWAY_IP_ADDRESS value="0.0.0.0"/>
<DNS_NAME value="$ILOCODE"/>
<DOMAIN_NAME value=""/>
<DHCP_GATEWAY value="Yes"/>
<DHCP_DNS_SERVER value="Yes"/>
<DHCP_WINS_SERVER value="Yes"/>
<DHCP_STATIC_ROUTE value="Yes"/>
<REG_WINS_SERVER value="Yes"/>
<PRIM_DNS_SERVER value="0.0.0.0"/>
<SEC_DNS_SERVER value="0.0.0.0"/>
<TER_DNS_SERVER value="0.0.0.0"/>
<PRIM_WINS_SERVER value="0.0.0.0"/>
<SEC_WINS_SERVER value="0.0.0.0"/>
<STATIC_ROUTE_1 DEST="0.0.0.0" MASK="0.0.0.0" GATEWAY="0.0.0.0"/>
<STATIC_ROUTE_2 DEST="0.0.0.0" MASK="0.0.0.0" GATEWAY="0.0.0.0"/>
<STATIC_ROUTE_3 DEST="0.0.0.0" MASK="0.0.0.0" GATEWAY="0.0.0.0"/>
<!-- This tag can be used on an iLO blade server to force iLO -->
<!-- to attempt to get an IP address from the signal backplane -->
<!-- in a server enclosure. The IP address must be set prior -->
<!-- with Mod_Enc_Bay_IP_Settings.xml -->
<ENCLOSURE_IP_ENABLE VALUE="Yes"/>
<DHCP_SNTP_SETTINGS value="Yes"/>
<SNTP_SERVER1 value="172.16.1.111"/>
<SNTP_SERVER2 value=""/>
<TIMEZONE value="America/Caracas"/>
<!-- iLO 5 - All versions. -->
<!-- iLO 4 - Version 1.20 or later -->
<!-- iLO 3 - Version 1.50 or later. -->
<!--
<IPV6_ADDRESS VALUE="2001:DB8:2:1::15" PREFIXLEN="64"/>
<IPV6_ADDRESS VALUE="2001:DB8:2:2::15" PREFIXLEN="64"/>
<IPV6_ADDRESS VALUE="FC00:DB8:2:3::15" PREFIXLEN="64"/>
<IPV6_ADDRESS VALUE="FC00:DB8:2:2::15"
PREFIXLEN="64"
ADDR_SOURCE="STATIC"
ADDR_STATUS="ACTIVE"/>
<IPV6_STATIC_ROUTE_1
IPV6_DEST="::"
PREFIXLEN="0"
IPV6_GATEWAY="::"
ADDR_STATUS="INACTIVE"/>
<IPV6_STATIC_ROUTE_2
IPV6_DEST="::"
PREFIXLEN="0"
IPV6_GATEWAY="::"
ADDR_STATUS="INACTIVE"/>
<IPV6_STATIC_ROUTE_3
IPV6_DEST="2001:DB8:2002:3003::"
PREFIXLEN="64"
IPV6_GATEWAY="2001:DB8:1::40"
ADDR_STATUS="ACTIVE"/>
<IPV6_PRIM_DNS_SERVER VALUE="2001:DB8:2:1::13"/>
<IPV6_SEC_DNS_SERVER VALUE="::"/>
<IPV6_TER_DNS_SERVER VALUE="::"/>
<IPV6_DEFAULT_GATEWAY VALUE="::"/>
<IPV6_PREFERRED_PROTOCOL VALUE="Y"/>
<IPV6_ADDR_AUTOCFG VALUE="Y"/>
<IPV6_REG_DDNS_SERVER VALUE="Y"/>
<SNTP_SERVER1 VALUE="2001:DB8:2:1::13"/>
<SNTP_SERVER2 VALUE="2001:DB8:1::13"/>
-->
<!-- iLO 5 - All versions. -->
<!-- iLO 4 - Version 1.30 and later. -->
<!-- iLO 3 - Version 1.60 and later. -->
<!--
<DHCPV6_STATELESS_ENABLE VALUE="Y"/>
<DHCPV6_STATEFUL_ENABLE VALUE="Y"/>
<DHCPV6_RAPID_COMMIT VALUE="N"/>
<DHCPV6_SNTP_SETTINGS VALUE="N"/>
<DHCPV6_DNS_SERVER VALUE="Y"/>
-->
<!-- iLO 5 - All versions. -->
<!-- iLO 4 - Version 1.50 and later. -->
<!-- iLO 3 - Version 1.80 and later. -->
<!--
<DHCPV6_DOMAIN_NAME VALUE="Y"/>
-->
<!-- iLO 5 - All versions. -->
<!-- iLO 4 - Version 2.00 and later -->
<!-- VALUES "DISABLED" "LINKACT" "RCVDATA" "DHCP" -->
<!--
<ILO_NIC_AUTO_SELECT VALUE="DISABLED"/>
-->
<!-- iLO 5 - All versions. -->
<!-- iLO 4 - Version 2.40 and later -->
<!-- VALUES "0" =off, or "2" =Scan ports 1 and 2 -->
<!--
<ILO_NIC_AUTO_SNP_SCAN VALUE="0"/>
-->
<!-- iLO 5 - All versions. -->
<!-- iLO 4 - Version 2.40 and later -->
<!-- VALUES "90" through "1800" seconds -->
<!--
<ILO_NIC_AUTO_DELAY VALUE="90"/>
-->
<!-- iLO 5 - All versions. -->
<!-- iLO 4 - Version 2.40 and later -->
<!-- VALUES "DISABLED" "LINKACT" "RCVDATA" "DHCP" -->
<!-- To specify a value here other than disabled, the -->
<!-- ILO_NIC_AUTO_SELECT tag must also be present and -->
<!-- specifying a value other than disabled. -->
<!--
<ILO_NIC_FAIL_OVER VALUE="DISABLED"/>
-->
<!-- iLO 5 - All versions. -->
<!-- iLO 4 - Version 2.40 and later -->
<!-- VALUES "30" through "3600" seconds -->
<!--
<ILO_NIC_FAIL_OVER_DELAY VALUE="300"/>
-->
</MOD_NETWORK_SETTINGS>
</RIB_INFO>
</LOGIN>
</RIBCL>
EOF
sleep 0.5
hponcfg -f /mnt/Mod_Network_Settings.xml
sleep 0.5
cat << EOF > /mnt/Set_Server_Name.xml
<!-- RIBCL Sample Script for HPE Lights-Out Products -->
<!-- Copyright 2003,2016 Hewlett Packard Enterprise Development LP -->
<!-- Description: This is a sample XML script to set the host server -->
<!-- name. -->
<!-- NOTE: You will need to replace the USER_LOGIN and PASSWORD -->
<!-- values with values that are appropriate for your -->
<!-- environment. -->
<!-- Use HPQLOCFG.EXE v1.00 or greater with this script. -->
<!-- See "iLO Scripting and Command Line Guide" for more -->
<!-- information on scripting and the syntax of the RIBCL -->
<!-- XML. -->
<!-- Firmware support information for this script: -->
<!-- iLO 5 - All versions -->
<!-- iLO 4 - All versions. -->
<!-- iLO 3 - All versions. -->
<RIBCL VERSION="2.0">
<LOGIN USER_LOGIN="adminname" PASSWORD="password">
<SERVER_INFO MODE="write">
<SERVER_NAME value ="$ILONAME"/>
</SERVER_INFO>
</LOGIN>
</RIBCL>
EOF
sleep 0.5
hponcfg -f /mnt/Set_Server_Name.xml
sleep 1
DATE=$(date -d "1 minute ago")
echo "生产IP是 $ILONAME ILO登录IP是 $ILOIP ILO物理机编号 $ILOCODE 登录账号 Administrator 登录密码 pmphilo$ILOIP 安装日期 $DATE" >/root/$ILONAME
}
### 下面是检测ilo版本,并升级到最新版
ilo1(){
echo "$_Green 准备升级 ilo1 $_End"
wget http://192.168.1.8/CP023365.scexe
echo "y" | bash CP023365.scexe
sleep 5
IloInitialize
}
ilo2(){
echo "$_Green 准备升级 ilo2 $_End"
wget http://192.168.1.8/CP035238.scexe
echo "y" | bash CP035238.scexe
sleep 5
IloInitialize
}
ilo3(){
echo "$_Green 准备升级 ilo3 $_End"
wget http://192.168.1.8/CP046328.scexe
echo "y" | bash CP046328.scexe
sleep 5
IloInitialize
}
ilo4(){
echo "$_Green 准备升级 ilo4 $_End"
wget http://192.168.1.8/CP046465.scexe
echo "y" | bash CP046465.scexe
sleep 5
IloInitialize
}
ilo5(){
echo "$_Green 准备升级 ilo5 $_End"
wget http://192.168.1.8/firmware-ilo5-1.48-1.1.x86_64.rpm
rpm2cpio firmware-ilo5-1.48-1.1.x86_64.rpm |cpio -idmv
echo "y" | bash /root/usr/lib/x86_64-linux-gnu/firmware-ilo5-1.48-1.1/setup
sleep 5
wget http://192.168.1.8/firmware-ilo5-2.44-1.1.x86_64.rpm
rpm2cpio firmware-ilo5-2.44-1.1.x86_64.rpm |cpio -idmv
echo "y" | bash /root/usr/lib/x86_64-linux-gnu/firmware-ilo5-2.44-1.1/setup
sleep 5
IloInitialize
}
VersionError(){
echo "$_Red ilo 版本查询错误 $_End"
}
iloversion=$(hponcfg -v |awk 'NR==3{print $9}')
case $iloversion in
1)
ilo1
;;
2)
ilo2
;;
3)
ilo3
;;
4)
ilo4
;;
5)
ilo5
;;
*)
VersionError
esac