集群自动化部署实战:软路由配置与PXE批量装机指南
1. 软路由基础配置与网络环境搭建
第一次接触软路由时,我被它强大的灵活性和可定制性震撼到了。相比传统硬路由,软路由就像把路由器变成了一台可以自由安装软件的电脑。以iKuai为例,这个基于Linux的软路由系统特别适合用来搭建自动化装机环境。记得去年给公司部署测试集群时,我用一台淘汰的NUC迷你主机装上iKuai,轻松实现了50台服务器的批量部署。
安装iKuai的实操要点:从官网下载ISO镜像后,建议使用VMware或VirtualBox创建虚拟机。分配两张网卡是关键——第一张网卡作为WAN口连接外网,第二张网卡作为LAN口连接内网设备。我习惯把LAN口IP设为192.168.66.1/24,这个网段既不会和常见家用路由器冲突,又方便记忆。首次登录web管理界面(默认admin/admin)记得立即修改密码,有次我忘记改密码,结果被实习生误操作改了DHCP配置,整个内网都瘫痪了。
配置DHCP服务时有个细节容易踩坑:地址池范围要避开可能被静态分配的IP。比如我把192.168.66.2到192.168.66.99保留给网络设备,DHCP池设为192.168.66.100-254。测试时可以用另一台虚拟机验证IP获取是否正常,我常用ip a命令查看网卡状态,再用ping www.baidu.com测试外网连通性。
注意:如果客户端获取到IP却无法上网,记得检查iKuai的NAT规则和DNS设置。有次我忘了配置DNS转发,排查了半天才发现问题。
2. PXE装机核心组件解析
PXE(Preboot eXecution Environment)堪称批量装机的神器。它的工作原理就像给裸机装了个"网络启动U盘":客户端开机时通过DHCP获取IP,然后从TFTP服务器下载引导文件。这个过程中涉及四个关键角色:
- PXE BootROM:现代网卡基本都内置这个芯片,相当于启动引导程序
- DHCP服务器:除了分配IP,还要告诉客户端TFTP服务器的地址(通过next-server参数)
- TFTP服务:传输小文件特别高效,用来传引导加载程序(pxelinux.0)和内核镜像
- 文件服务器:通常用HTTP或NFS提供完整的系统安装包
常见排错场景:最常遇到的就是TFTP文件缺失。有次部署时客户端一直报"PXE-E32: TFTP open timeout",后来发现是/var/lib/tftpboot目录权限设置不对。正确的做法是:
chmod 755 /var/lib/tftpboot chown nobody:nobody /var/lib/tftpboot/*另一个坑是防火墙拦截,记得放行相关端口:
firewall-cmd --add-service=tftp --permanent firewall-cmd --add-service=http --permanent firewall-cmd --reload3. Cobbler自动化部署实战
Cobbler相当于PXE的豪华套装版,把装机需要的所有组件(DHCP、TFTP、HTTP、镜像仓库)都整合在了一起。第一次用Cobbler时,我被它复杂的检查列表吓到了,但实际配置起来比纯手工搭建PXE环境简单得多。
关键配置步骤:
- 修改
/etc/cobbler/settings.yaml中的server和next_server地址 - 复制引导文件到正确位置:
cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/cobbler/loaders/- 生成加密密码替换默认配置:
openssl passwd -1 -salt 'abc' 'yourpassword'镜像导入技巧:当需要部署Rocky Linux时,我发现直接用ISO导入特别慢。后来改用mount挂载ISO文件再导入,速度提升明显:
mount -o loop Rocky-9.0-x86_64-dvd.iso /mnt cobbler import --path=/mnt --name=Rocky9 --arch=x86_64Kickstart模板是自动化核心,分享一个我优化过的模板片段:
%post # 配置国内yum源 mkdir -p /etc/yum.repos.d/backup mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/ cat > /etc/yum.repos.d/base.repo <<EOF [base] name=RockyLinux-\$releasever - Base baseurl=https://mirrors.aliyun.com/rockylinux/\$releasever/BaseOS/\$basearch/os/ gpgcheck=1 enabled=1 EOF %end4. 典型问题排查手册
在机房通宵排错的经历让我积累了不少实战经验,这里分享几个高频问题:
问题一:客户端卡在PXE启动界面
- 检查DHCP的next-server参数是否指向TFTP服务器IP
- 用tcpdump抓包分析DHCP交互过程:
tcpdump -i eth0 -vvn port 67 or port 68问题二:TFTP传输超时
- 确认
/var/lib/tftpboot目录有pxelinux.0等文件 - 测试TFTP服务是否正常:
tftp 192.168.66.66 get pxelinux.0 quit问题三:安装过程找不到镜像
- 检查HTTP服务是否正常运行
- 验证镜像路径可访问:
curl http://192.168.66.66/cobbler/distro_mirror/Rocky9-x86_64/有次遇到特别诡异的情况——所有服务都正常但装机总是失败。最后发现是交换机端口隔离配置错误,导致PXE广播包被过滤。这种网络层的问题最容易忽视,建议准备一个网络拓扑图,标注所有设备的IP和连接方式。
