PXE(Preboot Execution Environment,预启动执行环境) 是由Intel开发的网络引导技术,允许计算机通过网络从远程服务器下载引导镜像并加载操作系统,无需依赖本地存储设备(如硬盘、U盘)。其核心价值在于规模化、自动化部署,适用于数据中心、机房等需要批量安装系统的场景,可大幅减少人工重复操作。
PXE引导依赖Client/Server模式,通过以下协议实现网络启动:
pxelinux.0、内核vmlinuz、初始内存盘initrd.img);典型流程:
Cobbler是一款基于Python的开源系统部署工具,旨在简化PXE引导及自动化安装流程。其核心功能包括:
ks.cfg文件,支持自定义分区、软件包、用户等参数;manage_dhcp=1),减少手动配置工作量;cobbler、cobbler-web、tftp-server、dhcp、httpd、xinetd、pykickstart等组件;systemctl stop firewalld && systemctl disable firewalld)和SELinux(sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config)。使用Yum包管理器安装核心组件:
sudo yum install -y epel-release # 安装EPEL源(可选,部分组件需额外依赖)
sudo yum install -y cobbler cobbler-web tftp-server dhcp httpd xinetd pykickstart
编辑/etc/cobbler/settings,修改关键参数:
server = 192.168.1.100 # Cobbler服务器IP
next_server = 192.168.1.100 # TFTP服务器IP(通常与Cobbler服务器一致)
manage_dhcp = 1 # 允许Cobbler管理DHCP配置(需关闭手动DHCP服务)
pxe_just_once = 1 # 防止客户端重复PXE启动
编辑/etc/dhcp/dhcpd.conf,添加以下内容(根据实际网络调整):
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200; # 动态IP范围
option routers 192.168.1.1; # 网关
option domain-name-servers 8.8.8.8, 8.8.4.4; # DNS服务器
filename "pxelinux.0"; # PXE引导文件名
next-server 192.168.1.100; # TFTP服务器IP(与Cobbler服务器一致)
}
重启DHCP服务使配置生效:
sudo systemctl restart dhcpd
sudo systemctl enable dhcpd
编辑/etc/xinetd.d/tftp,启用TFTP并设置根目录:
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
group = root
server = /usr/sbin/tftp
server_args = -s /var/lib/tftpboot # TFTP根目录
disable = no # 启用服务
}
重启xinetd服务:
sudo systemctl restart xinetd
sudo systemctl enable xinetd
将CentOS ISO镜像(如CentOS-7-x86_64.iso)上传至服务器(如/tmp目录),使用Cobbler导入:
sudo cobbler import --path=/tmp/CentOS-7-x86_64.iso --name=centos7 --arch=x86_64
该命令会自动将ISO中的内核(vmlinuz)、初始内存盘(initrd.img)复制到TFTP根目录(/var/lib/tftpboot),并生成对应的安装源路径(如/var/www/cobbler/ks_mirror/centos7)。
Kickstart文件定义了系统安装的自动化参数,需手动创建(如/var/lib/cobbler/kickstarts/centos7.ks):
# 基础配置
lang en_US.UTF-8
keyboard us
timezone Asia/Shanghai
rootpw --plaintext yourpassword # 生产环境建议使用加密密码
# 网络配置
network --bootproto=dhcp --onboot=yes
# 分区方案
clearpart --all --initlabel
part / --fstype=xfs --size=1 --grow
part swap --size=2048
# 安装源
url --url="http://$server/cobbler/ks_mirror/centos7"
# 引导加载器
bootloader --location=mbr --boot-drive=sda
创建系统配置,关联镜像、Kickstart文件及PXE启动:
sudo cobbler profile add --name=centos7-profile --distro=centos7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7.ks
sudo cobbler system add --name=centos7-client --profile=centos7-profile --netboot-enabled=true
--distro:指定导入的操作系统镜像名称(通过cobbler distro list查看);--kickstart:指定Kickstart文件路径;--netboot-enabled=true:启用PXE网络启动。执行同步命令,将所有配置应用到Cobbler服务:
sudo cobbler sync
测试PXE启动:
/var/lib/tftpboot、/var/www/cobbler等目录权限正确(通常为root:root,权限755);setsebool -P cobblerd_anon_write 1);cobbler ksvalidator命令验证Kickstart文件语法,避免安装失败。