首先简单介绍一下PXE(preboot execute environment):是预启动执行环境缩写,是intel公司推出的一款通过网络来引导操作系统的协议。可以实现通过网络方式自动进行系统安装。广泛应用于网吧无盘系统。只需要将无盘服务器维护好,就能保证网络中的无盘工作站(客户机)的系统能正常运行。
PXE应用场景和需求:需要进行大批量的部署操作系统(批量化),pc机或者是没有光驱的服务器,需要经常更换或者重装linux操作系统。如果要部署PXE的话,需要网络畅通并且有一台发布安装源的服务器,且被安装系统的机器支持网络引导。
简单介绍一下PXE的工作过程:
1.pxe客户机向DHCP服务器发送请求
2.DHCP服务器回应pxe客户机,分配一个IP给pxe客户机后,并告知TFTP服务器的IP的地址
3.pxe客户机向TFTP服务器提出请求下载启动的网络引导程序文件pxelinux.0(由syslinux软件提供)
4.TFTP服务器响应pxe客户机的请求,将pxelinux.0发送给pxe客户机
5.服务器端通过http或vsftpd给pxe客户机提供安装源,即光盘镜像iso
6.服务器端通过kickstart文件ks.cfg,实现系统的自动化安装
即:
pxe客户机 -------------> DHCP服务器 -----------------------> TFTP服务器 ----------------> FTP服务器
next-server:TFTP的IP地址 pxelinux.0 挂载系统镜像
filename: ”pxelinux.0” isolinux-->defaultks.cfg
实验环境搭建:
通过centos7 部署一台PXE服务器,实现通过PXE网络来给客户机手动或自动安装centos操作系统(这里我将所需要的服务都部署在192.168.11.11这台服务上):
首先检查防火墙和selinux有没有关:
getenforce && setenforce 0
systemctl status firewalld &&systemctl stop firewalld
安装PXE服务器需要的软件包:
yum -y install dhcp tftp-server syslinux mlocate vsftpd
搭建DHCP服务器:
修改DHCP的主配置文件/etc/dhcp/dhcpd.conf
重启服务,并设为开机自启:
systemctl restart dhcpd && systemctl enable dhcpd
部署TFTP服务器:
更改TFTP的配置文件(路径为/etc/xinetd.d/tftp),将disable=yes改为disable=no
重启TFTP服务并设为开机自启:
systemctl restart tftp && systemctl enable tftp
更新local数据库,并查找pxelinux.0文件:
然后共享指定的文件到/var/lib/tftpboot中:
部署vsftpd:
启动vsftpd,并设置开机自启
systemctl restart vsftpd && systemctl enable vsftpd
共享镜像文件:
生成ks.cfg文件:(可以通过vim创建也可以安装软件kickstart)
注:linux系统在安装时会在家目录自动生成一个anaconda-ks.cfg配置文件,里面记录的就是用户在安装系统时所做的操作
编辑tftp服务器上的pxelinux.0文件,添加镜像文件路径和ks自动化应答文件路径:
做测试时可以在虚拟机上新建一台centos7_64x的虚拟机,给足内存(测试的话1.3个G就足够了)进行测试,开机后它会自动部署:
到此,测试完成。