PXE+Kickstart批量部署核心是搭建DHCP分配IP并指定TFTP引导文件、TFTP传输pxelinux.0/vmlinuz/initrd.img、FTP/HTTP提供安装源及ks.cfg、pxelinux.cfg/default配置启动菜单并指向ks文件,实现裸机开机自动装机。

Linux 配置网络安装服务器实现批量部署,核心是搭建一套基于 PXE + DHCP + TFTP + FTP/HTTP 的引导与分发体系,并配合 Kickstart 实现无人值守安装。整个过程不依赖物理介质,裸机开机即自动获取 IP、下载内核、加载安装环境、按预设配置完成系统部署。
一、服务端基础准备
确保服务器操作系统(如 CentOS 7 / Rocky 8 / OpenEuler)已就绪,网络通畅,且满足以下硬性前提:
- 关闭防火墙:
systemctl disable --now firewalld - 禁用 SELinux:
setenforce 0并修改/etc/selinux/config中SELINUX=disabled - 挂载系统安装光盘(如
/dev/cdrom)到本地目录(如/mnt或/media/cdrom) - 配置好本地 YUM 源,确保后续能顺利安装服务组件
二、部署关键网络服务
四个服务各司其职,缺一不可:
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
-
DHCP 服务:分配 IP 并告知客户端“去哪找引导文件”。关键配置项包括:
subnet 192.168.10.0 netmask 255.255.255.0 {range 192.168.10.180 192.168.10.200;option routers 192.168.10.101;filename "pxelinux.0";next-server 192.168.10.101;} -
TFTP 服务:传输小而关键的引导文件(
pxelinux.0、vmlinuz、initrd.img)。由xinetd托管,根目录通常为/var/lib/tftpboot,需确认disable = no且server_args = -s /var/lib/tftpboot -
FTP 或 HTTP 服务:提供完整安装源(即光盘内容)。推荐 FTP(
vsftpd),启用匿名访问:anonymous_enable=YES,并将光盘内容复制至/var/ftp/os/等路径
三、准备 PXE 引导环境
这是让裸机能“开口说话”的第一步:
- 安装 SYSLINUX 工具包:
yum install syslinux -y - 复制引导文件:
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ - 复制内核与初始化镜像:
cp /mnt/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/ - 创建启动菜单目录:
mkdir /var/lib/tftpboot/pxelinux.cfg - 写入默认菜单文件:
/var/lib/tftpboot/pxelinux.cfg/default,内容包含 label、kernel、append 行,其中append必须指定ks=ftp://192.168.10.101/ks.cfg(指向 Kickstart 文件)
四、编写与发布 Kickstart 应答文件
这是实现“全自动”的灵魂所在:
- 可手动编写或使用
system-config-kickstart图形工具生成ks.cfg - 关键段落必须包含:
install、url --url="ftp://192.168.10.101/os/"、rootpw --iscrypted $6$...、firewall --disabled、%packages列表、%post安装后脚本等 - 将
ks.cfg放在 FTP 根目录下(如/var/ftp/ks.cfg),确保权限可读 - 检查
default菜单中ks=地址是否可达,路径是否准确
客户端只需 BIOS 设置为“Network Boot”或“PXE Boot”,开机即可自动拉取配置、下载系统、静默安装。整个流程对运维人员零干预,一台装完,几十台同步启动也毫无压力。

















