PXE多系统批量装机操作
一、环境信息
PXE服务器:
IP地址:192.168.0.25
子网掩码:255.255.255.0
网关:192.168.0.254
系统:CentOS 7.9
支持安装:
CentOS 7.9
Rocky Linux 8
Rocky Linux 9
openEuler 22.03
Kylin V10 SP3
二、安装基础软件
执行:
yum install -y epel-release
yum install -y \
dhcp \
tftp-server \
xinetd \
syslinux \
httpd
设置开机启动:
systemctl enable dhcpd
systemctl enable xinetd
systemctl enable httpd
三、创建目录
执行:
mkdir -p /data/pxe
mkdir -p /data/pxe/os
mkdir -p /data/pxe/ks
mkdir -p /data/pxe/scripts
查看:
tree /data/pxe
结果:
/data/pxe
├── ks
├── os
└── scripts
四、配置HTTP服务
创建软链接:
ln -s /data/pxe /var/www/html/pxe
启动服务:
systemctl restart httpd
验证:
curl http://192.168.0.25/pxe/
返回:
Index of /pxe
表示成功。
五、配置DHCP服务
编辑:
vim /etc/dhcp/dhcpd.conf
写入:
default-lease-time 600;
max-lease-time 7200;
authoritative;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.100 192.168.0.200;
option routers 192.168.0.254;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.0.25;
next-server 192.168.0.25;
filename "pxelinux.0";
}
启动:
systemctl restart dhcpd
检查:
systemctl status dhcpd
六、配置TFTP服务
编辑:
vim /etc/xinetd.d/tftp
修改:
disable = no
创建目录:
mkdir -p /var/lib/tftpboot
mkdir -p /var/lib/tftpboot/pxelinux.cfg
复制启动文件:
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/
cp /usr/share/syslinux/ldlinux.c32 /var/lib/tftpboot/
启动:
systemctl restart xinetd
检查:
netstat -lunp | grep 69
七、上传系统镜像
CentOS 7.9
创建目录:
mkdir -p /data/pxe/os/CentOS-7-x86_64-Minimal-2009
挂载:
mount -o loop CentOS-7-x86_64-Minimal-2009.iso /mnt
复制:
cp -r /mnt/* /data/pxe/os/CentOS-7-x86_64-Minimal-2009/
卸载:
umount /mnt
Kylin V10 Server
mkdir -p /data/pxe/os/Kylin-Server-V10-SP3-2403-Release-20240426-X86_64
mount -o loop Kylin-Server-V10-SP3-2403-Release-20240426-X86_64.iso /mnt
cp -r /mnt/* /data/pxe/os/Kylin-Server-V10-SP3-2403-Release-20240426-X86_64/
umount /mnt
八、复制PXE启动内核
CentOS 7.9
mkdir -p /var/lib/tftpboot/CentOS-7-x86_64-Minimal-2009
cp /data/pxe/os/CentOS-7-x86_64-Minimal-2009/images/pxeboot/vmlinuz /var/lib/tftpboot/CentOS-7-x86_64-Minimal-2009/
cp /data/pxe/os/CentOS-7-x86_64-Minimal-2009/images/pxeboot/initrd.img /var/lib/tftpboot/CentOS-7-x86_64-Minimal-2009/
Kylin
mkdir -p /var/lib/tftpboot/Kylin-Server-V10-SP3-2403-Release-20240426-X86_64
cp /data/pxe/os/Kylin-Server-V10-SP3-2403-Release-20240426-X86_64/images/pxeboot/vmlinuz /var/lib/tftpboot/Kylin-Server-V10-SP3-2403-Release-20240426-X86_64/
cp /data/pxe/os/Kylin-Server-V10-SP3-2403-Release-20240426-X86_64/images/pxeboot/initrd.img /var/lib/tftpboot/Kylin-Server-V10-SP3-2403-Release-20240426-X86_64/
九、配置PXE菜单
编辑:
vim /var/lib/tftpboot/pxelinux.cfg/default
内容:
DEFAULT menu.c32
MENU TITLE Gitee PXE Install Menu
LABEL centos7
MENU LABEL Install CentOS-7-x86_64-Minimal-2009
KERNEL CentOS-7-x86_64-Minimal-2009/vmlinuz
APPEND initrd=CentOS-7-x86_64-Minimal-2009/initrd.img \
inst.repo=http://192.168.0.25/pxe/os/CentOS-7-x86_64-Minimal-2009 \
ks=http://192.168.0.25/pxe/ks/CentOS-7-x86_64-Minimal-2009.cfg
LABEL kylin
MENU LABEL Install Kylin-Server-V10-SP3-2403-Release-20240426-X86_64
KERNEL Kylin-Server-V10-SP3-2403-Release-20240426-X86_64/vmlinuz
APPEND initrd=Kylin-Server-V10-SP3-2403-Release-20240426-X86_64/initrd.img \
inst.repo=http://192.168.0.25/pxe/os/Kylin-Server-V10-SP3-2403-Release-20240426-X86_64 \
inst.ks=http://192.168.0.25/pxe/ks/Kylin-Server-V10-SP3-2403-Release-20240426-X86_64.cfg
十、创建Kickstart文件
CentOS:
vim /data/pxe/ks/CentOS-7-x86_64-Minimal-2009.cfg
内容:
install
url --url=http://192.168.0.25/pxe/os/CentOS-7-x86_64-Minimal-2009
lang zh_CN.UTF-8
keyboard us
timezone Asia/Shanghai
rootpw test@123456
firewall --disabled
selinux --disabled
bootloader --location=mbr
clearpart --all --initlabel
autopart
reboot
%packages
@core
%end
%post
curl http://192.168.0.25/pxe/scripts/init.sh | bash
%end
复制生成:
cp CentOS-7-x86_64-Minimal-2009.cfg Kylin-Server-V10-SP3-2403-Release-20240426-X86_64.cfg
按需修改安装源即可。
十一、初始化脚本
创建:
vim /data/pxe/scripts/init.sh
内容:
#!/bin/bash
timedatectl set-timezone Asia/Shanghai
systemctl enable chronyd
mkdir -p /root/.ssh
echo "SSH公钥" >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
systemctl restart sshd
授权:
chmod +x /data/pxe/scripts/init.sh
十二、启动全部服务
systemctl restart dhcpd
systemctl restart xinetd
systemctl restart httpd
查看:
systemctl status dhcpd
systemctl status xinetd
systemctl status httpd
十三、客户端安装
服务器BIOS设置:
Boot Mode:Legacy BIOS
Boot Device:PXE Network
开机后:
PXE获取IP
↓
下载PXE菜单
↓
显示系统列表
↓
选择安装系统
↓
自动安装
↓
自动执行初始化脚本
↓
安装完成
十四、验证
查看DHCP:
journalctl -u dhcpd -f
查看HTTP:
tail -f /var/log/httpd/access_log
查看TFTP:
tail -f /var/log/messages
验证安装源:
curl http://192.168.0.25/pxe/os/centos7/
curl http://192.168.0.25/pxe/ks/centos7.cfg
全部正常后即可进行批量装机。

浙公网安备 33010602011771号