PXE(Preboot Execution Environment)即预启动执行环境,它是一种可以使计算机通过网络启动的技术。
一、工作原理
- 客户端请求 :
- 当支持 PXE 的计算机启动时,其网卡的固件会广播一个请求,寻找网络中的 PXE 服务器。
- 这个请求中包含了客户端的 MAC 地址等信息。
- 服务器响应 :
- PXE 服务器接收到客户端的请求后,会根据请求中的信息提供相应的服务。
- 首先,服务器会发送一个 DHCP(动态主机配置协议)响应,为客户端分配 IP 地址等网络配置信息。
- 然后,服务器会告知客户端从何处下载启动文件,通常是一个引导程序。
- 客户端下载并启动 :
- 客户端根据服务器的指示,下载引导程序。
- 引导程序会进一步加载操作系统安装程序或其他网络应用程序。
二、应用场景
- 大规模部署操作系统 :
- 在企业或学校等有大量计算机需要安装操作系统的环境中,PXE 可以大大简化安装过程。
- 管理员可以在服务器上准备好操作系统镜像,通过网络让多台计算机同时从 PXE 服务器启动并安装操作系统,而无需逐台使用光盘或 U 盘进行安装。
- 例如,一家新成立的公司有数百台新电脑需要安装 Windows 操作系统,通过 PXE 技术,管理员可以快速、统一地完成操作系统的安装,节省大量时间和精力。
- 无盘工作站 :
- PXE 支持无盘工作站的运行。无盘工作站不需要本地硬盘存储操作系统和应用程序,而是通过网络从服务器加载所需的系统和软件。
- 比如在一些网吧中,采用无盘工作站可以方便管理游戏和软件的更新,所有的更新只需在服务器端进行,客户端就可以自动获取最新版本。当玩家在无盘工作站上启动电脑时,通过 PXE 从服务器加载操作系统和游戏程序,实现快速启动和运行。
- 系统恢复和故障排除 :
- 当计算机系统出现故障无法正常启动时,PXE 可以作为一种恢复手段。
- 通过网络启动到一个恢复环境,进行系统修复、数据备份或病毒查杀等操作。
- 例如,某台计算机由于病毒感染导致系统崩溃,无法从本地硬盘启动,此时可以利用 PXE 启动到一个专门的病毒查杀和系统修复工具环境,对计算机进行修复,而无需依赖本地的操作系统。
三、优势
- 集中管理 :
- 所有的操作系统镜像和软件资源都可以集中存储在 PXE 服务器上,方便管理员进行统一管理和更新。
- 与传统的分散式安装和维护相比,大大提高了管理效率,减少了维护成本。
- 灵活性 :
- 可以根据不同的需求配置 PXE 服务器,提供不同的操作系统和应用程序选择。
- 例如,在一个企业环境中,有些部门需要安装特定的软件,管理员可以通过 PXE 服务器为不同部门的计算机提供定制化的启动选项,满足多样化的需求。
- 快速部署 :
- 对于新的计算机或需要重新安装系统的计算机,通过 PXE 可以快速启动安装过程,无需等待光盘或 U 盘的读取,节省了安装时间。
四、实现
1.环境准备:
rhel7主机、开启主机图形、配置网络可用、关闭VMware dhcp功能

2.kickstart自动安装脚本制作
安装图形化生成kickstart自动安装脚本工具
[root@node1 ~]# yum install system-config-kickstart -y
启动图形制作工具
[root@node1 ~]# system-config-kickstart













注意要添加以下内容

[root@node1 ~]# ksvalidator ks.cfg 语法检测一下
[root@node1 ~]# cp /root/ks.cfg /var/www/html/ 将安装脚本共享

到此,安装脚本已经编写完成
3.dhcp服务并测试kickstart脚本
安装dhcp服务器为其他服务器提供分配ip的功能
[root@node1 ~]# yum install dhcp -y
生成配置文件
[root@node1 ~]# rpm -qc dhcp

[root@node1 ~]# cat /etc/dhcp/dhcpd.conf

[root@node1 ~]# \cp -f /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
编辑配置文件
[root@node1 ~]# vim /etc/dhcp/dhcpd.conf

将下面这两行注释掉


subnet 172.25.254.0 :网络位
netmask 255.255.255.0 :子网掩码
range 172.25.254.40 172.25.254.50 : 地址池
option routers 172.25.254.2 : 网关
重启dhcp服务
[root@node1 ~]# systemctl enable --now dhcpd
[root@node1 ~]# vim ks.cfg

将此处的--maxsize=1删掉
接下来我们新建一个虚拟机(check_ks)进行测试(新建虚拟机的过程就不详细叙述了)


自动下载


搭建pxe网络安装环境实现服务器自动部署
[root@node1 ~]# yum install syslinux.x86_64

共享pxelinux.0数据文件的网络服务
[root@node1 ~]# yum install tftp-server.x86_64 -y
[root@node1 ~]# rpm -ql tftp-server
启动tftp服务
[root@node1 ~]# systemctl enable --now tftp
[root@node1 ~]# cp /rhel7/isolinux/* /var/lib/tftpboot/

[root@node1 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/


[root@node1 tftpboot]# mkdir pxelinux.cfg
[root@node1 tftpboot]# cp isolinux.cfg pxelinux.cfg/default
编辑dhcp服务的配置文件并重启服务

[root@node1 tftpboot]# systemctl restart dhcpd
[root@node1 tftpboot]# vim /var/lib/tftpboot/pxelinux.cfg/default

接下来我们去测试一下
点击打开电源室进入固件

调整启动顺序

点击电源键,开启虚拟机

注意此处

实现自动安装
