企业级Ubuntu批量部署实战:200台服务器安装实录
快速体验
- 打开 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配置文件和自动化测试脚本的完整项目。 - 点击'项目生成'按钮,等待项目生成完整后预览效果








