之前同事生产系统批量安装600台服务器,当时他是做的无盘启动,最近在学习shell脚本,尝试写脚本安装,过程也很曲折,目前也有一些问题没解决,写下自己的安装过程
思路:一台机器安装DHCP服务器,设置一个地址池 ,开机后获取地址,前提是知道这些机器的序列号,新建一个excle表,分配上你想要的地址,通过awk提取原IP和规划IP,通过hostname批量设置IP地址
新建五台服务器,我是通过PXE安装的,大家也可以手动安装,网络我是使用的NAT模式,提示下,我当初内存设置的1G,pxe安装时报错,更改成2G就好了。
首先是获取机器SN,dmidecode | grep -i “serial N” | head -n1 ,我为了方便使用以下命令:dmidecode | grep -i “serial num” | head -n1| awk -F: ‘{print $2}’| sed “s/ //g” | awk -F “-” ‘{print $3}’;d966bd11eb910693这个我就认为是机器的SN号
ifconfig | grep 192.168.247 -C2| grep ether | awk '{print $2}'这个命令可以获取mac地址
#!/bin/bash
rm -rf tmp0 tmp1
for i in {
5..50};do
echo 192.168.247.$i
done | tee tmp0
这是获取192.168.247.5~50内存在的所有IP地址;
rm -rf ztmp1
for i in `cat ztmp0` ;do
if ping -c 4 $i ;then
echo $i >> ztmp1
fi
done
获取能够ping通的地址,接下来我们要批量ssh到节点上,但是需要输入密码;我找了半天发现安装sshpass可以输入明文密码;yum install sshpass;同时修改ssh_config文件vim /etc/ssh/ssh_config StrictHostKeyChecking no
rm -rf ztmp2
for i in `cat ztmp1`;do
mac=`sshpass -p 123456 ssh $i ifconfig | grep 192.168.247 -C2| grep ether | awk '{print $2}'`
sn=`sshpass -p 123456 ssh $i dmidecode | grep -i "serial num" | head -n1| awk -F: '{print $2}'| sed "s/ //g" |