背景说明

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

每当到这个时候小伙伴们拿台笔记本和一根网线,一台服务器、一台服务器的去修改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

批量自动化配置Dell服务器idrac管理口IP的更多相关文章

  1. 联想 lenove 3750 M4服务器更改启动项和管理口IP

    联想 lenove 3750 M4服务器更改启动项和管理口IP 注: 因为在机房拍照的原因,再加上工作比较忙:整理成文档的时候有的过程已经忘记了,所以有的步骤可能会缺失,里面的选项都已经用中文方式表达 ...

  2. Linux下搭建Oracle11g RAC(2)----配置DNS服务器,确认SCAN IP可以被解析

    从Oracle 11gR2开始,引入SCAN(Single Client Access Name) IP的概念,相当于在客户端和数据库之间增加一层虚拟的网络服务层,即是SCAN IP和SCAP IP  ...

  3. DELL服务器iDRAC相关设置

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

  4. zabbix3.2通过snmp v2采集Dell服务器iDRAC口信息监控硬件

    模板下载 https://files.cnblogs.com/files/LuckWJL/zbx_export_templates.xml 模板源代码 <?xml version="1 ...

  5. Dell服务器iDrac口默认账号密码和IP

    https://blog.csdn.net/artdao1987/article/details/79875528

  6. 戴尔 R730xd 服务器更改管理口密码 图文教程

    一.开机根据提示按F2进入配置界面 - 选择中间的iDRAC Setting选项,回车确认 二.进入之后选择 user configuration 选项 三.在change password 处键入新 ...

  7. DELL服务器管理工具和RACADM介绍

    DELL服务器管理工具和RACADM介绍 一.Dell服务器管理工具介绍 Dell对服务器(DELL PowerEdge)的管理主要提供了三种管理工具,分别是Dell Remote Access Co ...

  8. dell服务器快速设置idrac

    前提:将服务器专用的idrac网络接口,连接到网络上 1.登录到服务器(即被监控的服务器). 2.安装客户端工具 yum  install  OpenIPMI OpenIPMI-devel OpenI ...

  9. puppet开源的软件自动化配置和部署工具——本质就是CS,服务端统一管理配置

    1.  概述 puppet是一个开源的软件自动化配置和部署工具,它使用简单且功能强大,正得到了越来越多地关注,现在很多大型IT公司均在使用puppet对集群中的软件进行管理和部署,如google利用p ...

随机推荐

  1. 【代码分享】用redis+lua实现多个集合取交集并过滤,类似于: select key from set2 where key in (select key from set1) and value>=xxx

    redis中的zset结构可以看成一个个包含数值的集合,或者认为是一个关系数据库中用列存储方式存储的一列. 需求 假设我有这样一个数据筛选需求,用SQL表示为: select key from set ...

  2. mate10碎屏机当成小电脑使用尝试

    1.屏碎了修起来300-400,自己动手至少也要260以上买个屏幕钱. 手机图案锁屏也不知道密码,给我手机的亲戚忘了.当年手机被车压弯了. 对着恢复教程,盲屏幕猜着按还原了. 2.之后一路从8代系统更 ...

  3. 使用TortoiseGit和Git Bash不需要输入RSA密码(passphrase)的方法

    1. 安装和配置Putty 安装 官网下载Putty并安装. 生成ppk密钥 打开puttygen.exe(C:\Program Files\PuTTY\puttygen.exe), 点Convers ...

  4. thingsboard源码编译启动

    开发环境 不同的版本对应的开发环境不同(这里以3.3.3版本说明) jdk11+:参考jdk11+安装(win) Maven3.6+:Maven安装配置 Git:参考Git安装 IDEA: 参考IDE ...

  5. MySQL单表查询(分组-筛选-过滤-去重-排序)

    目录 一:单表查询 1.单表查询(前期准备) 2.插入记录(写入数据) 3.查询关键字 二:查询关键字之where 1.查询id大于等于3小于等于6的数据 2.查询薪资是20000或者18000或者1 ...

  6. 斯坦福 CS183 & YC 创业课系列中文笔记

    欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 ApacheCN 面试求职交流群 724187166 ApacheCN 学习资源 目录 Zero to One 从0到1 ...

  7. keystore文件

    [-] keystore操作 运行时签名文件路径debug 生成签名文件打包时使用 获取MD5和SH1 修改keystore文件密码 修改keystore文件别名 修改keystore文件别名的密码 ...

  8. JavaBean基本概念

    JavaBean 是特殊的 Java 类,使用 Java 语言书写,并且遵守 JavaBean API 规范. JavaBean 与其它 Java 类相比而言独一无二的特征: 提供一个默认的无参构造函 ...

  9. 生成静态库.a文件和动态库.so文件

    转载来源:https://www.cnblogs.com/hookjc/ 静态库 在linux环境中, 使用ar命令创建静态库文件.如下是命令的选项: d -----从指定的静态库文件中删除文件 m ...

  10. Vue3.X安装

    1.查看node.js和npm版本 $ node -v //建议v10以上版本 $ npm -v 2.若已安装了2.x的旧版本,需要先卸载 npm uninstall vue-cli -g 3.安装淘 ...