一、PXE服务器的搭建步骤
环境准备
1.1 关闭防火墙和禁用SELinux
在CentOS系统中,为了确保网络服务正常运行,需要关闭防火墙并禁用SELinux,可以使用以下命令:
systemctl stop firewalld systemctl disable firewalld setenforce 0
1.2 配置静态IP地址
确保PXE服务器有一个固定的IP地址,以便客户端可以找到它,编辑网络配置文件/etc/sysconfig/network-scripts/ifcfg-eth0
:
BOOTPROTO=static ONBOOT=yes IPADDR=192.168.100.101 NETMASK=255.255.255.0 GATEWAY=192.168.100.2 DNS1=8.8.8.8 DNS2=8.8.4.4
然后重启网络服务:
systemctl restart network
安装必要的软件包
2.1 安装DHCP服务
PXE引导过程中需要DHCP服务来分配IP地址,安装DHCP服务器:
yum install -y dhcp
复制配置文件并进行修改:
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf vim /etc/dhcp/dhcpd.conf
在文件中添加以下内容以支持PXE启动:
subnet 192.168.100.0 netmask 255.255.255.0 { range 192.168.100.3 192.168.100.100; option routers 192.168.100.2; option broadcast-address 192.168.100.255; filename "pxelinux.0"; next-server 192.168.100.101; }
启动DHCP服务并设置为开机自启:
systemctl start dhcpd systemctl enable dhcpd
2.2 安装TFTP服务
TFTP服务用于传输启动文件,安装TFTP服务器:
yum install -y tftp-server xinetd
创建目录并设置权限:
mkdir -p /var/lib/tftpboot chmod -R 777 /var/lib/tftpboot
在/etc/xinetd.d/tftp
文件中,将disable
属性改为no
:
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 }
重启xinetd服务:
systemctl restart xinetd systemctl enable xinetd
2.3 安装Syslinux和HTTP服务
Syslinux用于提供引导菜单,HTTP服务用于传输安装文件,安装Syslinux和HTTPD:
yum install -y syslinux httpd
将CentOS安装镜像挂载到HTTP目录下:
mount -o loop /path/to/centos.iso /mnt/iso cp -r /mnt/iso/* /var/www/html/ umount /mnt/iso
启动HTTP服务并设置为开机自启:
systemctl start httpd systemctl enable httpd
3. 配置PXE引导文件和Kickstart文件
3.1 配置PXE引导文件
创建PXE引导文件目录和默认配置文件:
mkdir -p /var/lib/tftpboot/pxelinux.cfg echo "default linux" > /var/lib/tftpboot/pxelinux.cfg/default
将CentOS的启动文件复制到TFTP目录:
cp /mnt/iso/images/pxeboot/vmlinuz /var/lib/tftpboot/pxelinux.0 cp /mnt/iso/images/pxeboot/initrd.img /var/lib/tftpboot/initrd0.img
3.2 创建Kickstart文件
Kickstart文件用于自动化安装过程,创建一个名为ks.cfg
的文件:
cat <<EOL > /var/www/html/centos7/ks.cfg #platform=x86,AMD64,OpenStack,LenovolatmeKeyRocky,8.4,OpenStackQueens,OpenStackRocky,OpenStackTrain,OpenStackStein,OpenStackWallaby,OpenStackYorkBuggy) Install OS instead of upgrade install cdrom repo --name="CentOS-AppStream" --baseurl=file:///var/www/html/centos7/AppStream repo --name="CentOS-BaseOS" --baseurl=file:///var/www/html/centos7/BaseOS keyboard us lang en_US timezone America/New_York reboot ignoreinstreq %end EOL
测试和验证
4.1 测试网络连接和PXE引导
使用另一台计算机通过网络启动(PXE),检查是否能够获取IP地址并加载引导文件,确保BIOS中已启用网络启动选项,并将其设置为首选启动设备。
4.2 验证自动安装过程
重新启动客户机,确保其可以从PXE服务器引导并自动完成操作系统安装,可以通过VNC或直接查看客户机屏幕确认安装进度。
二、常见问题解答(FAQ)
Q1: 如何更改PXE服务器的IP地址?
A1: 编辑/etc/sysconfig/network-scripts/ifcfg-eth0
文件,修改IPADDR
字段为新的IP地址,然后重启网络服务:systemctl restart network
,更新DHCP配置文件中的next-server
指向新的IP地址。
Q2: 如果客户端无法获取IP地址怎么办?
A2: 确保DHCP服务器正在运行,并且配置文件中的范围设置正确,检查客户端的网络设置,确保其通过网络启动并且可以访问DHCP服务器,可以使用命令systemctl status dhcpd
检查DHCP服务状态。
Q3: Kickstart文件不生效怎么办?
A3: 确保Kickstart文件路径正确,并且在启动文件中指定了正确的URL,检查文件权限,确保所有需要访问的用户都有读取权限,如果问题依旧,可以尝试手动下载Kickstart文件并检查其内容是否正确。