Shell一键部署PXE

本文档详述了一键PXE批量装机的实现过程,包括添加网卡、编写自动化脚本、配置ks.cfg文件以及脚本执行效果。脚本涉及关闭防火墙、复制网卡配置、修改DHCP服务、配置TFTP和FTP服务,以及安装Kickstart无人值守系统。ks.cfg文件用于定义无人值守安装参数。最后,文章提到了测试方法和前篇博客的链接,供查阅更多细节。
摘要由CSDN通过智能技术生成


一、前置工作

添加网卡

在这里插入图片描述

二、编写脚本

#!/bin/bash
####################PXE一键部署#####################
#关闭防火墙及核心防护
systemctl stop firewalld
setenforce 0
#复制网卡信息
yuanip=`cat /etc/sysconfig/network-scripts/ifcfg-ens33 |grep 'IPADDR' |awk -F"=" '{print $2}'`
read -p "请输入要修改得网卡ip: " ip
cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens37
#修改网卡配置文件
echo "正在修改ens37网卡信息"
sed -i "s/ens33/ens37/" /etc/sysconfig/network-scripts/ifcfg-ens37
sed -i "/IPADDR/s/$yuanip/$ip/" /etc/sysconfig/network-scripts/ifcfg-ens37
sed -i "/GATEWAY/s/^/#/" /etc/sysconfig/network-scripts/ifcfg-ens37
#重启网卡
systemctl restart network
#安装部署PXE所需得软件包
ping -c 2 -i 0.5 www.baidu.com &> /dev/null
if [ $? -eq 0 ];then
echo "正在安装dhcp,tftp,vsftp,syslinux"
yum -y install dhcp tftp-server xinetd syslinux vsftpd >> /dev/null
cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf <<EOF
y
EOF
#配置DHCP服务
echo "请修改DHCP配置文件"
read -p "请输入配置的网段: " wd
read -p "请输入地址池的左区间: " zqj
read -p "请输入地址池的右区间: " yqj
echo "
ddns-update-style none;
subnet $wd netmask 255.255.255.0{
range $zqj $yqj;
option routers $ip;
option domain-name-servers 114.114.114.114;
next-server $ip;
filename \"pxelinux.0\";
}" >> /etc/dhcp/dhcpd.conf
#修改TFTP服务配置文件
echo "正在修改TFTP配置文件"
sed -i '/diszble/s/yes/no/' /etc/xinetd.d/tftp
#挂载镜像,将初始化镜像文件和内核文件复制到TFTP目录下
mount /dev/cdrom/ /mnt
cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/
cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/
#准备PXE引导镜像文件pxelinux.0
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
#配置启动菜单文件
mkdir /var/lib/tftpboot/pxelinux.cfg
touch /var/lib/tftpboot/pxelinux.cfg/default
#手工配置defaule菜单
echo "正在配置defaule菜单"
echo "
default auto
prompt 0
label auto
	kernel vmlinuz
	append initrd=initrd.img method=ftp://$ip/centos7 ks=ftp://$ip/ks.cfg

label linux text
	kernel vmlinuz
	append text initrd=initrd.img method=ftp://$ip/centos7 ks=ftp://$ip/ks.cfg

label linux rescue
	kernel vmlinuz
	append rescue initrd=initrd.img method=ftp://$ip/centos7 ks=ftp://$ip/ks.cfg" >> /var/lib/tftpboot/pxelinux.cfg/default
#安装FTP服务
mkdir /var/ftp/centos7
cp -rf /mnt/* /var/ftp/centos7
#安装Kickstart无人值守
yum -y install system-config-kickstart >> /dec/null
#启动服务
echo "正在启动服务"
systemctl start dhcpd tftp xinetd vsftpd
echo "服务已启动"
else
echo "网络出现问题,无法下一步"
fi

三、准备ks.cfg文件

ks.cfg文件是配置无人值守的文件,执行完脚本之后需要将该文件拖入到/var/ftp/下
前面pxe装机博客中有无人值守的具体配置流程,可以去前面博客中直接查看Kickstart无人值守安装
这里是前面博客的链接:PXE高效批量网络装机

四、脚本执行效果

脚本中有需要交互的地方,交互配置的文件都已说明
在这里插入图片描述
将无人值守的文件拖入至/var/ftp/下
在这里插入图片描述

至此,pxe一键批量装机就编写完成,测试方法也有在上篇博客中有演示,这里就不进行演示了
PXE高效批量网络装机
如有一些配置文件不明白的地方前篇博客中都有详细说明


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值