在Centos7上安装PXE装机环境来批量安装操作系统
步骤 1:安装必要的软件包
首先,需要确保系统已安装 dhcp
、tftp-server
和 httpd
等软件包。可以使用以下命令进行安装:
yum install -y dhcp tftp-server httpd syslinux-tftpboot xinetd
步骤 2:配置 DHCP 服务器
接下来,需要配置 DHCP 服务器以向客户端分配 IP 地址。在 /etc/dhcp/dhcpd.conf
文件中添加以下内容:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option subnet-mask 255.255.255.0;
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8, 8.8.4.4;
filename "pxelinux.0";
}
这将启用 DHCP 服务器,并设置子网,IP 范围,子网掩码,网关和 DNS 服务器。还需要设置 PXELinux 引导程序文件(pxelinux.0
)。
注意:确保将 interface
参数设置为正确的网络接口名称,例如 eth0
。
步骤 3:配置 TFTP 服务器和 PXELinux 引导程序
现在,需要配置 TFTP 服务器以下载和传输 PXE 引导程序和内核文件。为此,请编辑 /etc/xinetd.d/tftp
文件并使用以下内容:
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
接下来,在 /var/lib/tftpboot/
目录中创建一个 pxelinux.cfg
子目录,并在其中创建名为 default
的文件,其内容如下:
default menu.c32
prompt 0
timeout 300
MENU TITLE Custom PXE Boot Menu
LABEL centos7_x86_64
MENU LABEL CentOS 7 x86_64
KERNEL images/CentOS-7-x86_64/vmlinuz
APPEND initrd=images/CentOS-7-x86_64/initrd.img inst.repo=http://mirror.centos.org/centos/7/os/x86_64/
LABEL centos7_i386
MENU LABEL CentOS 7 i386
KERNEL images/CentOS-7-i386/vmlinuz
APPEND initrd=images/CentOS-7-i386/initrd.img inst.repo=http://mirror.centos.org/centos/7/os/i386/
这里将创建一个菜单,让用户可以选择要安装的操作系统版本。默认情况下,菜单超时时间为 5 分钟。
注意:确保在 TFTP 根目录(即 /var/lib/tftpboot/
)中创建名为 images/CentOS-7-x86_64
和 images/CentOS-7-i386
的目录,并将 CentOS 7 实际内核和 initrd 文件放置在正确的目录中。
步骤 4:启用 HTTP 服务器并设置 CentOS 安装映像
最后,需要启用 HTTP 服务器以提供操作系统安装映像。可以使用默认配置启用 Apache HTTP 服务器:
systemctl enable httpd
systemctl start httpd
接下来,在 /var/www/html/
目录中创建一个名为 centos
的子目录,并挂载 CentOS 安装映像(ISO):
mkdir /var/www/html/centos/
mount -o loop /path/to/CentOS-7-x86_64-DVD.iso /var/www/html/centos/
现在,PXE 安装环境已准备就绪。在客户端启动时,需要将其配置为使用网络引导(PXE)。可以通过按照计算机制造商提供的说明或在 BIOS 中查找“网络引导”选项来完成此操作。一旦设置完毕,系统将从 PXE 引导程序启动,并显示操作系统安装菜单。