PXE 高效批量网络装机
一、部署PXE远程安装 服务
PXE (Preboot eXecution Environment,预启动执行环境)是由Intel公司开发的网络引导技术,工作在Client/Server模式,允许客户机通过网络从远程服务器下载引导镜像并加载安装文件或整个操作系统。
PXE批量部署的的三个优点:
• 规模化:同时装配多台服务器
• 自动化:安装系统、配置各种服务
• 远程实现:不需要光盘、U盘等安装介质
若要搭建PXE网络体系,必须满足以下几个前提条件:
• 服务端:运行DHCP服务,用来分配地址、定位引导程序 运行TFTP服务,提供引导程序下载。
• 客户端:网卡支持PXE协议,主板支持网络引导。
(1)搭建PXE远程安装服务器
1、准备Linux安装源
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
采用FTP协议发布安装源,在服务器上部署一个YUM软件仓库。
mkdir /media/cdrom
mount /dev/cdrom /media/cdrom/ #挂载光盘
dnf -y install vsftpd
mkdir /var/ftp/euler
cp -rf /media/cdrom/* /var/ftp/euler
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES #第12行
systemctl start vsftpd #启动
2、安装并启用TFTP服务
TFTP 服务由 tftp-server 软件包提供,配置文件位于/etc/xinetd.d/tftp。配置时只要将“disable = yes”改为“disable =no”,然后启动 TFTP 服务即可。
dnf -y isntall tftp-server
vim /etc/xinetd.d/tftp

systemctl staer tftp
systemctl enable tftp
3、准备Linux内核、初始化镜像文件
用于 PXE 网络安装的 Linux 内核、初始化镜像文件可以从 Linux 系统光盘获得,分别为 vmlinuz和 initrd.img,位于文件夹 images/pxeboot 下。找到这两个文件并将其复制到 tftp 服务的根目录。
cd /media/cdrom/images/pxeboot
cp vmlinuz initrd.img /var/lib/tftpboot
cd /media/cdrom/isolinux/
cp ldlinux.c32 libcom32.c32 /var/lib/tftpboot/

• **ldlinux.c32:**是 SYSLINUX 引导加载程序的一部分,用于在PXE 网络引导过程中加载 Linux 内核和其他必要的初始化文件。它提供了从网络加载内核和初始化 RAM 文件系统(initramfs)所需的基础引导功能。在 PXE引导流程中,负责处理引导菜单的配置,并根据用户的选择或默认设置加载相应的内核和参数。
• **libcom32.c32:**是 SYSLINUX 提供的一组常用函数的库文件,这些函数被 ldlinux.c32 和其他引导程序所使用。它包含了处理文件系统、内存分配、字符串操作等底层功能的实现。使得SYSLINUX 引导程序能够更高效地执行其任务,而无需在每个引导程序中重复实现这些基础功能。
4、准备PXE引导程序
用于 PXE 网络安装的引导程序为 pxelinux.0,由软件包 syslinux 提供。安装好软件包 syslinux,然后将文件 pxelinux.0 也复制到 tftp 服务的根目录下。
dnf -y install syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot

5、安装并启用DHCP服务
由于 PXE 客户机通常是尚未装系统的裸机,因此为了与服务器取得联系并正确下载相关引导文件,需要预先配置好 DHCP服务来自动分配地址并告知引导文件位置。如PXE服务器的IP地址为192.168.10.101,DHCP 地址池为 192.168.10.200~192.168.10.250,则可以参考以下操作来搭建DHCP 服务器。
dnf -y install dhcp
vim /etc/dhcp/dhcpd.conf

systemctl start dhcpd
systemctl enable dhcpd
• **netx-server:**用来指定TFTP服务器的地址
• **filename:**用来指定PXE 引导程序的文件名。
6、配置启动菜单文件
启动菜单用来指导客户机的引导过程,包括如何调用内核,如何加载初始化镜像。默认的启动菜单文件为 default,应放置在 tftp 根目录的 pxelinux.cfg 子目录下。
mkdir /var/lib/tftpboot/pxelinux.cfg
vim /var/lib/tftpboot/pxelinux.cfg/default

(2)验证PXE网络安装
搭建好 PXE 远程安装服务器以后,就可以使用客户机进行安装测试了。对于新购买的服务器或 PC 裸机,一般不需要额外设置;若要为已有系统的主机重装系统,则可能需要修改 BIOS 设置,将“Boot First设为“NETWORK”或“LAN”,然后重启主机;若使用 VMware 创建的虚拟机进行测试,虚拟机内存至少需要 2GB,否则在启动安装时会报错。
如果服务器配置正确,网络连接、PXE 支持等都没有问题,则客户机重启后将自动配置 IP 地址,然后从 TFTP 服务器中获取引导程序 pxelinux.0,并根据引导菜单配置提示用户指定启动入口。
选“是”

在提示字串“boot:”后直接执行“auto”命令,将会进入默认的图形安装入口;若执行“linux text命令,则进入文本安装入口;若执行“linux rescue”命令,则进入救援模式。

直接按 Enter 键确认后将自动通过网络下载安装文件,并进入图形安装程序界面,如下图所示。若能够成功到达这一步,说明 PXE 网络安装基本成功。后续安装步骤与使用光盘的正常安装类似。

二、实现Kickstart无人值守安装
通过 PXE 技术远程安装 Linux 系统的方法,安装介质不再受限于光盘、移动硬盘等设备,大大提高了系统安装的灵活性。然而,安装期间仍需要手动选择语言、键盘类型、指定安装源等一系列交互操作,当需要批量安装时非常不方便。
所以以下将实现无人值守自动安装,通过使用安装应答文件,自动完成安装过程中的各种设置,从而无须手动干预,提高网络装机效率。
在 openeuler24.03 或 centos8 等系统版本中,不再支持 system-config-kickstart 工具,无法通过此工具生成应答文件,需要直接编辑ks.cfg 文件。
(1)编辑应答文件
vim /var/ftp/ks.cfg
url --url="ftp://192.168.10.101/euler"
# 指向安装源地址:ml-citation{ref="1,4" data="citationList"}
# 系统语言设置
lang zh_CN.UTF-8
keyboard us
# 网络配置(以DHCP为例)
network --bootproto=dhcp --device=ens160 --activate
# 安全策略,root的密码为aptech1!
authselect --enableshadow --passalgo=sha512
selinux --enforcing
rootpw --iscrypted
j9T
46wHHCdZ1EXPI8G8Ms9rE20JnYOkuLkXzyrq4nbwS98
# 时区设置
timezone Asia/Shanghai
# 分区方案(自动分区示例)
autopart --type=lvm --fstype=ext4
bootloader --location=mbr
# 清除旧系统并初始化磁盘
clearpart --all --initlabel
# 软件包选择
%packages --nocore
@^minimal-environment
kernel
grub2
efibootmgr
%end
# 后安装脚本
%post
# 关闭防火墙(根据实际需求选择)
systemctl disable firewalld
# 配置SSH允许root登录(按需启用)
# sed -i 's/^#PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config
%end
# 重启配置
reboot

(2)实现批量自动装机
有了自动安装的应答文件之后,只要将其放置 PXE 安装服务器的 FTP 目录下,并适当修改引导菜单就可以实现基于网络的批量自动装机了。
1、启动自动应答文件
编辑引导菜单文件 default,添加 ks 引导参数以指定 ks.cfg 应答文件的 URL 路径。
vim /var/lib/tfpboot/pxelinux.cfg/default

(2)验证
启用自动应答安装之后,当客户机每次以 PXE 方式引导时,将自动下载 ks.cfg 应答配置文件,然后根据其中的设置安装 Linux 系统,而无须手工干预。

注:如果是在 VMware 虚拟机环境下,需要禁用 VMware的 DHCP 功能;否则安装文件将无法加载。
链接:https://blog.csdn.net/2501_91344566/article/details/147088849
全部0条评论
快来发表一下你的评论吧 !