裸金属服务器自动装机与零接触交付

裸金属交付如果依赖人工挂载ISO、逐台设置RAID和手工输入网络参数,规模增加后必然产生配置漂移。零接触交付应把资产发现、固件、PXE启动、操作系统安装、Cloud-init、配置管理、验收和入库串成可审计流水线。

一、交付目标

设备上架
  ↓
BMC发现与资产核对
  ↓
BIOS/RAID/固件基线
  ↓
PXE/iPXE启动
  ↓
无人值守安装
  ↓
首次启动初始化
  ↓
配置管理与安全基线
  ↓
验收、入CMDB、交付业务

每一步应有输入、输出、超时、失败状态和人工接管方式。

二、网络与安全域

建议划分:

  • BMC带外管理网;
  • Provisioning/PXE网;
  • 业务管理网;
  • 存储或集群网;
  • 镜像与软件仓库。

PXE服务不应无边界响应整个办公网络。DHCP、TFTP、HTTP和BMC接口应限制来源,安装完成后撤销临时Token和安装权限。

三、DHCP与PXE流程

传统PXE:

  1. 服务器DHCP获取地址;
  2. DHCP返回TFTP服务器和启动文件;
  3. 下载PXE Bootloader;
  4. 下载内核和initrd;
  5. 访问安装源和无人值守配置。

UEFI和Legacy BIOS使用不同启动文件。混合环境必须按客户端架构返回正确Bootloader。

四、iPXE优势

iPXE支持HTTP/HTTPS、脚本、菜单、参数和更灵活的链式启动,比TFTP传输大文件更高效。

#!ipxe
dhcp
kernel http://provision.example.com/images/linux/vmlinuz \
  initrd=initrd.img ip=dhcp autoinstall \
  ds=nocloud-net;s=http://provision.example.com/seed/${mac}/
initrd http://provision.example.com/images/linux/initrd.img
boot

生产脚本应验证设备身份,不能让任意客户端读取含密钥的配置。

五、无人值守安装方式

  • RHEL/Rocky/Alma:Kickstart;
  • Ubuntu:Autoinstall/Subiquity;
  • Debian:Preseed或现代自动安装方案;
  • Windows:WDS/MDT/Autounattend;
  • 通用首次启动:Cloud-init。

配置文件版本化,按硬件角色、站点和环境渲染。密码只通过短期Secret或首次启动注册获取,不写入公共模板。

六、磁盘与RAID

安装前从BMC/Redfish或RAID工具获取:

  • 磁盘数量、容量、类型、序列号;
  • 控制器和缓存保护;
  • 现有虚拟盘;
  • 介质错误;
  • NVMe拓扑;
  • 启动模式。

按角色定义RAID策略:系统盘镜像、数据盘直通、HBA/JBOD或硬RAID。Ceph、ZFS等软件定义存储通常要求避免不透明硬RAID。

清盘是破坏性操作,必须通过资产状态、工单和双重确认防止误装生产服务器。

七、分区与文件系统

模板需要考虑:

  • UEFI ESP;
  • /boot;
  • LVM;
  • 根分区;
  • /var、日志和容器目录;
  • Swap;
  • XFS/ext4;
  • 加密;
  • 未来扩容。

不要让日志、容器镜像和根分区无边界共享空间。数据库和容器节点可独立数据卷。

八、Cloud-init

Cloud-init适合首次启动:

  • 主机名;
  • 网络;
  • 用户与SSH Key;
  • 软件源;
  • 时区和NTP;
  • 安装Agent;
  • 注册配置管理;
  • 清除临时凭据。

脚本必须幂等。失败时保存 /var/log/cloud-init.log 与输出,不要仅靠重装解决。

九、网络配置

动态安装地址和最终静态地址可以不同。需要处理:

  • Bond/LACP;
  • VLAN;
  • 多网卡命名;
  • MTU;
  • 默认路由;
  • DNS/NTP;
  • IPv4/IPv6;
  • NetworkManager、Netplan或systemd-networkd。

根据MAC、PCI地址和接口序列生成稳定映射,避免网卡枚举顺序变化导致配错网络。

十、镜像与软件仓库

  • ISO、内核、initrd和软件包校验哈希;
  • 使用内部镜像和代理;
  • 固定版本快照;
  • 保留已交付版本;
  • TLS和访问控制;
  • 防止安装过程中依赖不可控互联网;
  • 记录每台服务器使用的镜像版本。

十一、MAAS与Foreman

MAAS适合裸金属发现、Commission、部署和网络管理;Foreman可结合Katello管理生命周期、内容和配置。

选型考虑:

  • Linux/Windows支持;
  • BMC驱动;
  • IPAM/DHCP/DNS边界;
  • 多站点;
  • 模板能力;
  • API;
  • 审批与RBAC;
  • 现有CMDB集成。

平台不能替代标准化数据模型和安全流程。

十二、硬件Commission

正式安装前执行:

  • CPU、内存和NUMA清单;
  • 内存ECC状态;
  • 磁盘SMART;
  • 网卡链路和速率;
  • BMC健康;
  • BIOS版本和配置;
  • 短时CPU/内存/磁盘测试;
  • 序列号和位置核对。

测试要控制时长和温度,不在已承载数据的设备执行破坏性写测试。

十三、固件与BIOS基线

基线包括:

  • BIOS/BMC/RAID/NIC/HBA固件;
  • UEFI与Secure Boot;
  • 虚拟化扩展;
  • NUMA与超线程;
  • 电源策略;
  • 启动顺序;
  • SR-IOV;
  • Watchdog。

固件升级应分批、检查兼容矩阵并保留恢复路径。不要在全批服务器同时升级同一固件。

十四、安装身份与短期令牌

每台服务器使用一次性注册Token,绑定MAC、序列号、工单和有效期。首次注册后换取正式机器身份并撤销安装Token。

禁止在Kickstart、Cloud-init或iPXE公共URL中存放长期Root密码、私钥或云凭据。

十五、配置管理接管

操作系统安装后由Ansible、Salt、Puppet等接管:

  • 安全基线;
  • 账号和SSH;
  • 时间同步;
  • 软件源;
  • 日志和监控;
  • EDR;
  • 内核参数;
  • 应用角色。

安装模板只完成最小引导,避免在安装阶段塞入全部业务逻辑。

十六、验收测试

验收至少包括:

  • 硬件数量与CMDB一致;
  • RAID/磁盘/文件系统正确;
  • 管理、业务和存储网络可达;
  • DNS、NTP正常;
  • 固件和OS版本符合基线;
  • 监控、日志、备份和安全Agent在线;
  • 重启后自动恢复;
  • 业务端口和性能抽测;
  • 无默认密码和临时凭据。

十七、失败与重试

状态机示例:

discovered → inspected → approved → provisioning
→ configuring → validating → ready
                    ↘ failed/manual-review

重试必须从安全检查点开始。磁盘清理、RAID重建等动作不能因为网络超时就无条件重复。

十八、带外回退

自动装机失败时应能:

  • 通过BMC查看Console;
  • 获取安装日志;
  • 重新设置一次性启动;
  • 挂载受控救援镜像;
  • 禁止继续批次;
  • 转人工工单。

不要把同一个共享BMC管理员密码写入自动化平台。

十九、重装与数据保护

重装前强校验:

  • 资产状态为待重装;
  • 业务已下线;
  • 备份确认;
  • 序列号与工单一致;
  • 目标磁盘清单;
  • 双人审批;
  • 带外位置确认。

高风险环境可要求现场扫码确认资产标签,防止IP或主机名复用造成误清盘。

二十、监控与上线清单

  • [ ] DHCP/PXE范围与办公网络隔离;
  • [ ] UEFI和Legacy启动链均测试;
  • [ ] 镜像、模板和软件源版本化并校验;
  • [ ] BMC、磁盘和RAID在安装前检查;
  • [ ] 清盘与重装有工单和双重确认;
  • [ ] 安装凭据一次性且自动撤销;
  • [ ] 网络接口映射稳定;
  • [ ] Cloud-init和配置管理幂等;
  • [ ] 验收覆盖硬件、网络、安全和业务;
  • [ ] 失败可停止、可人工接管、可审计。

二十一、结语

零接触交付不是让服务器无人值守地“装完系统”,而是让每台设备从资产发现到业务可用都有确定状态、可信输入和可验证输出。把清盘、固件、网络和凭据等高风险动作纳入审批与审计,才能在提高交付速度的同时避免自动化扩大事故。

参考资料

Copyright © yan-jian.com 2023 - 2026 · Powered by GitBook更新时间: 2026-10-29 20:20:35

results matching ""

    No results matching ""