背景說明
工作中經常會遇到一次上幾十台、幾百台伺服器的情況
每當到這個時候小夥伴們拿臺筆記本和一根網線,一台伺服器、一台伺服器的去修改idrac ip
為了節約這個工作量,利用dell的racadm工具,寫了下面這個指令碼。只要執行起這個指令碼,後面要做的就只是插拔網線的工作
安裝racadm工具包
[root@localhost ~]# curl -s | bash準備工作[root@localhost ~]# yum -y install srvadmin-all
在採購時dell會提供乙份伺服器的sn列表,會根據這個列表規劃好每台伺服器的idrac ip,我們可以將此轉換成以逗號分隔的csv檔案如下:
[root@localhost ~]# cat idrac_ip_list指令碼aaaaaaa,10.10.10.2,255.255.255.0,10.10.10.1
bbbbbbb,10.10.10.3,255.255.255.0,10.10.10.1
[root@localhost ~]# cat set_idrac_ip.sh執行#!/usr/bin/env bash
# @author : eric winn
# @email : [email protected]
# @time : 2018-07-27 14:47
# @version : 1.0
# @file : set_idrac_ip
# @software : pycharm
# the file of idrac
idrac_ip_list_file=$
if [ ! -f "$" ]; then
echo "idrac_ip_list_file is not found!!!!"
echo "$0 [idrac_ip_list_file]"
exit 127
fi# idrac default infomation
idrac_default_ip=$
idrac_default_user=$
idrac_default_pass=$
# racadm bin
racadm_bin=/opt/dell/srvadmin/sbin/racadm
# install check
srvadmin_install="curl -s | bash\nyum -y install srvadmin-all"
test ! `ls $ 2> /dev/null` && printf "please run these commands as root to install racadm.\n\e[1;31m$\e[0m\n" && exit 1
racadm="$ -r $idrac_default_ip -u $idrac_default_user -p $idrac_default_pass"
# idrac history
idrac_sn_history=()
# idrac set
set_idrac_ip() get bios.sysinformation.systemservicetag |grep systemservicetag |awk -f '=' ''`
if [ "$s" == "s" ]; then
echo "get idrac sn is field!"
return 1
fi# we only need the first 7 characters
sn=$
echo "sn *****=> $"
for h_sn in $
doif [ "$h_sn" == "$" ]; then
echo "the $ is already set."
return 0
fidone
# get new idrac_net from idrac_ip_list_file
new_idrac_net=(`grep $ $idrac_ip_list_file|awk -f ',' ''`)
if [ "$s" == "s" ]; then
echo "the $ is not in the $"
return 1
fiecho "setting the new ip: $"
# set idrac ip
$ setniccfg -s $ | grep successfully
if [ $? -eq 0 ]; then
idrac_sn_history=($ $)
return 0
else
echo "set is field!"
return 1
fi}# check internet
check_internet() s" == "s" ]
dopings=`ping -c 2 $idrac_default_ip |awk 'nr==6 '`
if [ "$s" == "s" ]; then
echo -e ".\c"
else
echo
fidone
return 0
}# main function
main()
main
注:後面的idrac_ip是csv檔名
[root@localhost ~]# sh set_idrac_ip.sh idrac_ipconnecting ...
let's starting set
sn *****=> aaaaaaa
setting the new ip: 10.10.10.2 255.255.255.0 10.10.10.1
static ip configuration enabled and modified successfully
now , please change to a new server
批量自動化配置Dell伺服器idrac管理口IP
背景說明 工作中經常會遇到一次上幾十台 幾百台伺服器的情況 每當到這個時候小夥伴們拿臺筆記本和一根網線,一台伺服器 一台伺服器的去修改idrac ip 為了節約這個工作量,利用dell的racadm工具,寫了下面這個指令碼。只要執行起這個指令碼,後面要做的就只是插拔網線的工作 安裝racadm工具包...
批量自動化配置Dell伺服器idrac管理口IP
背景說明 工作中經常會遇到一次上幾十台 幾百台伺服器的情況 每當到這個時候小夥伴們拿臺筆記本和一根網線,一台伺服器 一台伺服器的去修改idrac ip 為了節約這個工作量,利用dell的racadm工具,寫了下面這個指令碼。只要執行起這個指令碼,後面要做的就只是插拔網線的工作 安裝racadm工具包...
批量自動化配置Dell伺服器idrac管理口IP
背景說明 工作中經常會遇到一次上幾十台 幾百台伺服器的情況 每當到這個時候小夥伴們拿臺筆記本和一根網線,一台伺服器 一台伺服器的去修改idrac ip 為了節約這個工作量,利用dell的racadm工具,寫了下面這個指令碼。只要執行起這個指令碼,後面要做的就只是插拔網線的工作 安裝racadm工具包...