批量自动化配置Dell服务器idrac管理口IP
工作中经常会遇到一次上几十台、几百台服务器的情况
每当到这个时候小伙伴们拿台笔记本和一根网线,一台服务器、一台服务器的去修改idrac IP
为了节约这个工作量,利用dell的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的更多相关文章
- 联想 lenove 3750 M4服务器更改启动项和管理口IP
联想 lenove 3750 M4服务器更改启动项和管理口IP 注: 因为在机房拍照的原因,再加上工作比较忙:整理成文档的时候有的过程已经忘记了,所以有的步骤可能会缺失,里面的选项都已经用中文方式表达 ...
- Linux下搭建Oracle11g RAC(2)----配置DNS服务器,确认SCAN IP可以被解析
从Oracle 11gR2开始,引入SCAN(Single Client Access Name) IP的概念,相当于在客户端和数据库之间增加一层虚拟的网络服务层,即是SCAN IP和SCAP IP ...
- DELL服务器iDRAC相关设置
iDRAC又称为Integrated Dell Remote Access Controller,也就是集成戴尔远程控制卡 iDRAC卡相当于是附加在服务器上的一台小电脑,通过与服务器主板上的管理芯片 ...
- zabbix3.2通过snmp v2采集Dell服务器iDRAC口信息监控硬件
模板下载 https://files.cnblogs.com/files/LuckWJL/zbx_export_templates.xml 模板源代码 <?xml version="1 ...
- Dell服务器iDrac口默认账号密码和IP
https://blog.csdn.net/artdao1987/article/details/79875528
- 戴尔 R730xd 服务器更改管理口密码 图文教程
一.开机根据提示按F2进入配置界面 - 选择中间的iDRAC Setting选项,回车确认 二.进入之后选择 user configuration 选项 三.在change password 处键入新 ...
- DELL服务器管理工具和RACADM介绍
DELL服务器管理工具和RACADM介绍 一.Dell服务器管理工具介绍 Dell对服务器(DELL PowerEdge)的管理主要提供了三种管理工具,分别是Dell Remote Access Co ...
- dell服务器快速设置idrac
前提:将服务器专用的idrac网络接口,连接到网络上 1.登录到服务器(即被监控的服务器). 2.安装客户端工具 yum install OpenIPMI OpenIPMI-devel OpenI ...
- puppet开源的软件自动化配置和部署工具——本质就是CS,服务端统一管理配置
1. 概述 puppet是一个开源的软件自动化配置和部署工具,它使用简单且功能强大,正得到了越来越多地关注,现在很多大型IT公司均在使用puppet对集群中的软件进行管理和部署,如google利用p ...
随机推荐
- prometheus+exporter小测试:
1.golang中使用expoter import ( "github.com/prometheus/client_golang/prometheus/promhttp" ) fu ...
- vue学习18-过滤器
<!DOCTYPE html> <html lang='en'> <head> <meta charset='UTF-8'> <meta http ...
- golang中数组指针和指针数组当做函数参数如何修改数组中的值
先理解:数组指针它的类型时指针,指针数组它的类型时数组 1. 数组指针当做函数的参数 package main import "fmt" func changeData(dataA ...
- VUE3 之 组件间事件通信 - 这个系列的教程通俗易懂,适合新手
1. 概述 相关定律告诉我们:这个世界上的任何事物之间都会存在一定联系,"城门失火,殃及池鱼"就是一个很好的例子.因此如果我们能够尽早发现这些看不见的联系,就能很好的解决更多遇见的 ...
- 沁恒CH32F103C8T6(三): PlatformIO DAPLink和WCHLink下载配置
目录 沁恒CH32F103C8T6(一): Keil5环境配置,示例运行和烧录 沁恒CH32F103C8T6(二): Linux PlatformIO环境配置, 示例运行和烧录 沁恒CH32F103C ...
- linux判断物理CPU,逻辑CPU和CPU核数
① 物理CPU 实际Server中插槽上的CPU个数 物理cpu数量,可以数不重复的 physical id 有几个 ② 逻辑CPU Linux用户对 /proc/cpuinfo 这个文件肯定不陌生. ...
- 利用Jemalloc进行内存泄漏的调试
内存不符预期的不断上涨,可能的原因是内存泄漏,例如new出来的对象未进行delete就重新进行复制,使得之前分配的内存块被悬空,应用程序没办法访问到那部分内存,并且也没有办法释放:在C++中,STL容 ...
- Discriminative Learning of Deep Convolutional Feature Point Descriptors 论文阅读笔记
介绍 该文提出一种基于深度学习的特征描述方法,并且对尺度变化.图像旋转.透射变换.非刚性变形.光照变化等具有很好的鲁棒性.该算法的整体思想并不复杂,使用孪生网络从图块中提取特征信息(得到一个128维的 ...
- JavaScript数据结构之链表
链表相较于数组的优缺点 1. 链表在 插入.删除.移动数据效率比数组要高,数组插入.移动.删除数据需要改变没有数据的索引,而链表则只需要更改指针即可 2. 在查询方面,数组要优于链表,数组存储的数据是 ...
- AT2347 [ARC070C] NarrowRectangles
首先不难看出一个暴力的 \(dp\) 解法,考虑令 \(dp_{i, j}\) 表示考虑完前 \(i\) 个矩形,第 \(i\) 个矩形左端点在 \(j\) 时所需要的最小花费. 不难有转移: \[d ...