快速体验
打开 InsCode(快马)平台 https://www.inscode.net
输入框内输入如下内容: 开发一个基于PXE的网络安装系统,要求:1.支持Ubuntu 20.04/22.04双版本选择 2.自动识别Dell/HP服务器硬件并加载对应驱动 3.通过Preseed实现无人值守安装 4.安装后自动加入Ansible管理节点 5.生成MAC地址白名单校验功能。输出包含DHCP配置模板、Preseed配置文件和自动化测试脚本的完整项目。
点击'项目生成'按钮,等待项目生成完整后预览效果

最近接手了一个科技公司的服务器部署项目,需要在短时间内完成200台Dell和HP服务器的Ubuntu系统安装。手动一台台装显然不现实,于是我们采用了PXE+Preseed的自动化方案。这里记录下整个实战过程,希望能给有类似需求的朋友一些参考。
项目需求分析
多版本支持:需要同时支持Ubuntu 20.04和22.04两个LTS版本,不同业务部门有不同需求。
硬件兼容性:服务器品牌包括Dell PowerEdge和HP ProLiant,需要自动识别并加载对应驱动。
无人值守安装:通过Preseed实现全自动化安装,减少人工干预。
集中管理:安装完成后自动加入Ansible管理节点,方便后续统一配置。
安全控制:通过MAC地址白名单限制安装权限,防止未经授权的设备接入。
技术方案设计
PXE网络启动:
搭建TFTP服务器存放引导文件
配置DHCP服务提供网络参数和引导文件路径
根据客户端MAC地址区分硬件型号
Preseed自动应答:
为两个Ubuntu版本分别准备preseed.cfg
设置分区方案、时区、用户账号等基础配置
加入硬件检测逻辑,动态加载对应驱动
后安装脚本:
自动注册到Ansible控制节点
执行基础安全加固
生成安装报告发送到管理平台
实施过程详解
搭建PXE服务器:
使用一台现有Ubuntu服务器作为PXE主机
安装配置dnsmasq同时提供DHCP和TFTP服务
特别注意子网划分和地址池大小设置
准备安装镜像:
下载官方Ubuntu ISO镜像
提取内核和initrd文件到TFTP目录
添加Dell和HP的专用驱动模块
编写Preseed文件:
分区方案采用LVM,根据磁盘大小自动调整
设置默认用户和SSH密钥登录
配置apt源为内网镜像加速安装
实现MAC白名单:
在DHCP配置中添加MAC地址校验
未授权的设备只能获取受限网络访问
记录所有尝试安装的设备信息
Ansible集成:
在后安装脚本中调用Ansible API
自动添加主机到对应的业务组
推送初始配置playbook
遇到的问题与解决方案
硬件识别问题:
初期部分HP服务器网卡未被识别
解决方案是在initrd中添加额外驱动
安装速度慢:
首次测试时下载包速度不理想
在内网搭建apt镜像后显著改善
分区方案冲突:
不同型号服务器磁盘配置差异大
最终采用动态计算的分区策略
实际效果与优化
经过两周的开发和测试,系统最终实现了:
平均每台服务器安装时间15分钟
安装成功率达到99.3%
新服务器上线后5分钟内即可纳入管理体系
错误日志自动收集分析功能
后续我们还计划增加:
硬件自检报告生成
BIOS设置自动化
基于Web的安装监控界面
这个项目让我深刻体会到自动化运维的重要性。通过InsCode(快马)平台的一键部署功能,我们可以快速验证配置方案,省去了搭建测试环境的麻烦。平台内置的Ubuntu环境也很适合用来开发这类运维工具。

快速体验
打开 InsCode(快马)平台 https://www.inscode.net
输入框内输入如下内容: 开发一个基于PXE的网络安装系统,要求:1.支持Ubuntu 20.04/22.04双版本选择 2.自动识别Dell/HP服务器硬件并加载对应驱动 3.通过Preseed实现无人值守安装 4.安装后自动加入Ansible管理节点 5.生成MAC地址白名单校验功能。输出包含DHCP配置模板、Preseed配置文件和自动化测试脚本的完整项目。
点击'项目生成'按钮,等待项目生成完整后预览效果