文档章节

批量自动化配置Dell服务器idrac管理口IP

x
 xiangyunyan
发布于 06/26 10:01
字数 676
阅读 51
收藏 0
背景说明

工作中经常会遇到一次上几十台、几百台服务器的情况

每当到这个时候小伙伴们拿台笔记本和一根网线,一台服务器、一台服务器的去修改idrac IP

为了节约这个工作量,利用dell的racadm工具,写了下面这个脚本。只要运行起这个脚本,后面要做的就只是插拔网线的工作

安装racadm工具包
[root@localhost ~]# curl -s http://linux.dell.com/repo/hardware/dsu/bootstrap.cgi | 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          : eng.eric.winn@gmail.com 

# @Time           : 2018-07-27 14:47

# @Version        : 1.0

# @File           : set_idrac_ip

# @Software       : PyCharm

# the file of idrac

idrac_ip_list_file=${1}

if [ ! -f "${idrac_ip_list_file}" ]; then

    echo "idrac_ip_list_file is not found!!!!"

    echo "$0 [idrac_ip_list_file]"

    exit 127

fi

# idrac Default infomation

idrac_default_ip=${2:-192.168.0.120}

idrac_default_user=${3:-root}

idrac_default_pass=${4:-calvin}

# racadm bin

racadm_bin=/opt/dell/srvadmin/sbin/racadm

# install check

srvadmin_install="curl -s http://linux.dell.com/repo/hardware/dsu/bootstrap.cgi | bash\nyum -y install srvadmin-all"

test ! `ls ${racadm_bin} 2> /dev/null` && printf "Please run these commands as root to install racadm.\n\e[1;31m${srvadmin_install}\e[0m\n" && exit 1

RACADM="${racadm_bin}  -r $idrac_default_ip -u $idrac_default_user -p $idrac_default_pass"

# idrac history

idrac_sn_history=()

# idrac set

set_idrac_ip(){

    # get SN

    sn=`${RACADM} get BIOS.SysInformation.SystemServiceTag  |grep SystemServiceTag |awk -F '=' '{print $2}'`

    if [ "${sn}s" == "s" ]; then

        echo "Get idrac sn is field!"

        return 1

    fi

    # We only need the first 7 characters

    sn=${sn:0:7}

    echo "sn ======> ${sn}"

    for h_sn in ${idrac_sn_history[*]}

    do

        if [ "$h_sn" == "${sn}" ]; then

            echo "The ${sn} is already set."

            return 0

        fi

    done

    # get new idrac_net from idrac_ip_list_file

    new_idrac_net=(`grep ${sn} $idrac_ip_list_file|awk -F ',' '{print $2,$3,$4}'`)

    if [ "${new_idrac_net}s" == "s" ]; then

    echo "The ${sn} is not in the ${idrac_ip_list_file}"

    return 1

    fi

    echo "Setting the new ip: ${new_idrac_net[*]}"

    # set idrac ip

    ${RACADM} setniccfg -s ${new_idrac_net[*]} | grep successfully

    if [ $? -eq 0 ]; then

        idrac_sn_history=(${idrac_sn_history[*]} ${sn})

        return 0

    else

        echo "Set is field!"

        return 1

    fi

}

# check internet

check_internet() {

    pings=""

    echo -e "Connecting ...\c"

    while [ "${pings}s" == "s" ]

    do

        pings=`ping -c 2 $idrac_default_ip  |awk 'NR==6 {print $4}'`

        if [ "${pings}s" == "s" ]; then

            echo -e ".\c"

        else

            echo

        fi

    done

    return 0

}

# main function

main() {

    while true

    do

        check_internet

        if [ $? -eq 0 ]; then

            echo "Let's starting set"

            set_idrac_ip

            if [ $? -eq 0 ]; then

                echo 

                echo "Now , Please change to a new server"

                sleep 5

            else

            echo 

                echo "Please check it."

                sleep 15

            fi

        fi

    done

}

main
运行

注:后面的idrac_ip是csv文件名

[root@localhost ~]# sh set_idrac_ip.sh idrac_ip 

Connecting ...

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

本文转载自:https://www.linuxprobe.com/dell-idrac-ip.html

x
粉丝 2
博文 111
码字总数 38393
作品 0
长沙
私信 提问
ansible+redfish+idrac管理DELL服务器

背景描述 于是利用redfish通过OOB-controller就可以不用通过web方式获取到服务器相关信息,甚至做一些修改操作,同时利用ansible的特性完成批量管理 运行实现 运行实现的过程如下图 完成的功...

z00w00
2018/07/05
0
0
zabbix企业应用:通过SNMP和iDRAC监控DELL服务器硬件

监控DELL服务器硬件一般有两种途径:1、操作系统上安装OMSA,编写脚本调用omreport命令进行监控;2、使用iDRAC,可以不用在操作系统上安装OMSA,只需要在iDRAC上开启SNMP,zabbix通过SNMP进行...

张斌_青岛
2016/03/11
0
0
dell r720安装server 2008 R2系统

背景:机房有一台dell r720服务器做的是raid5、raid5相对来说还是安全的。可是这次服务器一下二块闪黄灯、系统也进不了了。系统里的应用当然也不能用了。 好吧。那就重启进入LC看看。dell服务...

科技小能手
2017/11/12
0
0
戴尔R730远程管理卡配置

配置R730服务器的IDRAC IDRAC又称为Integrated Dell Remote AccessController,也就是集成戴尔远程控制卡,iDRAC卡相当于是附加在服务器上的一台小电脑,通过与服务器主板上的管理芯片BMC进行...

mmingluo
2017/12/14
0
0
racadm环境之多线程并发(一)

本人习惯通过cobbler部署物理机系统,那我就来说说部署系统前需要做哪些准备。 1.BIOS设置是否符合标准。比如F1/F2错误提示、系统启动顺序、是否有开启PXE启动等。 2.你从哪个网卡进行pxe引导...

吾言
2016/09/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

HTTP协议无状态,到底要怎么理解?

一,故事 一天,你有个需求,你要去超市买一瓶酱油。 到了超市买了酱油,你告诉售货员,下次给我准备下面粉,我下次来拿。 第二次,你去超市拿面粉,售货员说他不记得你什么时候说要准备面粉...

一代码农码一代
18分钟前
1
0
elk 邮件预警

{ "trigger": { "schedule": { "cron": "0/15 1 * * * ?" } }, "input": { "search": { "request": { "search_type": "query_then_fetch", "indices": [ "heartbeat*" ], "rest_total_hits_a......

internetafei
30分钟前
0
0
从一道面试题谈linux下fork的运行机制

今天一位朋友去一个不错的外企面试linux开发职位,面试官出了一个如下的题目: 给出如下C程序,在linux下使用gcc编译: #include "stdio.h" #include "sys/types.h" #include "unistd.h" in......

linux服务器架构
32分钟前
1
0
AEDPoS合约实现之GetConsensusCommand

正如文章AElf共识合约标准中所述,GetConsensusCommand接口用于获取某个公钥下一次生产区块的时间等信息。 在AEDPoS的实现中,其输入仅为一个公钥(public key),该接口实现方法的调用时间另...

AELF开发者社区
40分钟前
0
0
kotlin中奖概率

fun main() { var wins = 0 var chance = 0.2 var playTime = 10// 1000万次 val n = 10000000 (1..n).forEach { if (play(chance, playTime)) win......

oschina4cyy
43分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部