背景说明

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

每当到这个时候小伙伴们拿台笔记本和一根网线,一台服务器、一台服务器的去修改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服务器管理口ip地址_批量自动化配置Dell服务器idrac管理口IP相关推荐

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

    背景说明 工作中经常会遇到一次上几十台.几百台服务器的情况 每当到这个时候小伙伴们拿台笔记本和一根网线,一台服务器.一台服务器的去修改idrac IP 为了节约这个工作量,利用dell的racadm工 ...

  2. 不同域里相同ip地址_不同的人可能具有相同的公共IP地址吗?

    不同域里相同ip地址 For the most part, all of us are used to having a unique public IP address, but what do y ...

  3. js获取域名ip地址_插件分享 | 可在线查询子域名和同IP域名的RapidDNS

    前言:https://RapidDNS.io 是一个秒级在线子域名和同IP域名的查询工具.目前拥有25亿条DNS记录,支持A.AAAA.CNAME.MX4种DNS记录类型.由于Goby程序对子域名收集 ...

  4. 北京dns服务器ip地址_什么是DNS? 域名系统,DNS服务器和IP地址概念介绍

    北京dns服务器ip地址 介绍 (Introduction) By the end of this article, you should have a better understanding of ...

  5. 联想服务器imm默认地址_命令下配置ip地址

    一.添加 IP 地址及默认网关 (是添加,要重设或更新原来IP的请看第三点) netsh interface ip add address 用法 : add address [name=] [[add ...

  6. 网站服务器的ip地址会变吗,网站的服务器变了 IP地址变吗

    网站的服务器变了 IP地址变吗 内容精选 换一换 本文介绍通过华为云市场镜像"Drupal内容管理系统(LAMP)"搭建Drupal网站的方法.Drupal是使用PHP语言编写的开 ...

  7. 公有ip地址和私有ip地址_如何查找您的私有和公共IP地址

    公有ip地址和私有ip地址 Each device on your network has a private IP address only seen by other devices on the ...

  8. 详细讲解电脑IP地址, 子网掩码, 默认网关 和 DNS服务器等

      以Windows系统中IP地址设置界面为参考(如图1), IP地址, 子网掩码, 默认网关 和 DNS服务器, 这些都是什么意思呢? 一 IP地址 概述 计算机要实现网络通信,就必须要有一个用于快 ...

  9. linux设置静态ip地址_什么是静态IP地址,与动态IP地址比较以及如何为Windows和Linux设置?...

    linux设置静态ip地址 IP addresses are the core mechanism of Computer networks. The IP address is used to sp ...

最新文章

  1. sublime python3 输入换行不结束
  2. WINCE开机显示logo之前先显示白屏的问题
  3. codevs 1283 等差子序列
  4. Java字符串替换前缀,从Bash中的字符串中删除固定的前缀/后缀
  5. day_01 解析简单的程序
  6. 不再为无限级树结构烦恼,且看此篇
  7. 谈SQL SERVER数据库中的索引
  8. 【Django 2021年最新版教程14】session是什么 如何使用
  9. UiPath视频教程
  10. STM32 rtc唤醒 低功耗待机模式 避免iwdog看门狗方案
  11. Hello软件项目相关功能测试点
  12. 桥本木分式(使用回溯法求解)
  13. Linux Kubuntu 良心输入法
  14. C语言基础入门,编程的第一步
  15. Ubuntu启用IPv6上google的方法
  16. 服务器和交换机物理连接_什么是路由器交换机?路由器交换机说明!
  17. JavaScript - 核心语法学习
  18. LeetCode 720. 词典中最长的单词
  19. rtx腾讯通服务器修改ip,如何修改rtx服务器地址
  20. 从角雷达到前向雷达,中国厂商如何加速突围?

热门文章

  1. java设计模式装饰者模式优点_java设计模式之--装饰者模式
  2. 【Vue】路由器插件——vue-router
  3. 关于VBA编辑word自动生成报告
  4. 流媒体开发之-音悦台TV页码链接解析
  5. 移动端一像素问题解决方案
  6. 网维无盘服务器错误代码,网维大师9添加副服务器提示258错误
  7. vue在线考试实现倒计时
  8. 2进制与10进制在计算机中的应用,二进制转十进制和十六进制计算器
  9. java-根据生日计算周岁
  10. 实用新型专利的注意事项