一键部署自动化pxe装机脚本

第一步:关闭防火墙,部署本地yum源 

#关闭防火墙和selinux服务的函数
stopd (){
systemctl  stop firewalld
if [ $? -eq 0 ];then
echo "防火墙关闭成功!"
fi
setenforce 0
}

#进行yum本地源仓库搭建的函数
cangku (){
mount /dev/sr0 /mnt &>/dev/null
cd /etc/yum.repos.d
mkdir repo.bak
mv *.repo ./repo.bak
echo "
[local]
name=local
baseurl=file:///mnt
gpgcheck=0
enabled=1 ">local.repo
yum clean all && yum makecache &>/dev/null
if [ $? -eq 0 ];then
echo "元数据已建立!"
fi
}

 第二步:下载pxe要用到的服务软件包

#下载相关服务的函数
download(){
yum install -y dhcp tftp-server  vsftpd syslinux &>/dev/null
yum install -y xinetd
if [ $? -eq 0 ];then
echo "相关的服务运用下载完毕!"
fi
systemctl restart vsftpd &>/dev/null
if [ $? -eq 0  ];then
 echo " ftp服务启动成功!"
fi

}

第三步:通过传参自定义dhcp配置 

#配置dhcp并启动dhcp的函数
xdhcp (){
\cp -f -p  /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example   /etc/dhcp/dhcpd.conf
local i=$1
local a=$2
local b=$3
local c=$4
local d=$5
echo "
subnet $i netmask $a {
 range $b  $c;
 option routers $d;
 next-server $d;
 filename "pxelinux.0";
} " >>/etc/dhcp/dhcpd.conf
sed -i 's/pxelinux.0/"pxelinux.0"/' /etc/dhcp/dhcpd.conf
systemctl restart network
systemctl restart dhcpd &>/dev/null
if [ $? -eq 0 ];then
echo "dhcp服务启动成功!"
fi
}

 第四步:搭建tftp站点

#搭建tftp站点
tftpd (){
tftp_status=$(grep disable /etc/xinetd.d/tftp |awk -F= '{print $2}')
sed -i "s/$tftp_status/no/" /etc/xinetd.d/tftp
systemctl restart xinetd &>/dev/null
systemctl restart tftp &>/dev/null
if [ $? -eq 0 ];then
echo "tftp服务启动成功!"
fi
}

第五步: 重新挂载镜像光盘,编写pxe装机必备文件

#重新挂载光盘安放三大文件
centos7(){
local e=$1
mkdir -p /var/ftp/centos7
mount /dev/sr0  /var/ftp/centos7 &>/dev/null
cp -p /var/ftp/centos7/isolinux/initrd.img  /var/lib/tftpboot
cp -p /var/ftp/centos7/isolinux/vmlinuz  /var/lib/tftpboot
cp  -p /usr/share/syslinux/pxelinux.0   /var/lib/tftpboot
mkdir -p  /var/lib/tftpboot/pxelinux.cfg
echo "
default auto
prompt 0

label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://$e/centos7



label text
kernel  text vmlinuz
append text  initrd=initrd.img method=ftp://$e/centos7


label rescue
kernel  rescue vmlinuz
append rescue  initrd=initrd.img method=ftp://$e/centos7
" >/var/lib/tftpboot/pxelinux.cfg/default
}

第六步:主代码实现区,调用函数方法 

###########################main############################
stopd
cangku
download
echo "  dhcpd服务配置文件如下:
##############################################################################
#                                                                            #  
#    subnet 网段(IP) netmask 子网掩码(netmask){                          # 
#     range  指定的网络池范围起始IP(IP1)        范围的终止IP(IP2);       #
#     option routers DHCP服务器的网关(IP3);                                #
#     next-server 指定的tftp服务器(IP3);                                   #
#     filename "pxelinux.0";                                                 #
#      }                                                                     #
#                                                                            #
##############################################################################
"
read -p "请输入本机的IP网段: "  IP
read -p "请输入本机的子网掩码:" netmask
read -p "请入要配置的网络池的范围(起始IP):"    IP1
read -p "请入要配置的网络池的范围(终止IP):"    IP2
read -p "请入要配置的dhcp的网关(及其tftp的指定服务器):"                IP3
xdhcp  $IP   $netmask  $IP1   $IP2   $IP3
tftpd
centos7   $IP3

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值