Loading

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

全部正常后即可进行批量装机。

posted @ 2026-06-08 15:49  亚里士多智  阅读(16)  评论(0)    收藏  举报