3. 自动化运维环境搭建
批量运维 Xeon 服务器的第一步,不是急着写 Ansible Playbook,而是把“带外管理网”和“业务数据网”彻底分开,并让新机器在无人值守的情况下自动完成操作系统安装。本节围绕管理网络规划、PXE/HTTP/TFTP 服务部署、DHCP 与 DNS 配置、控制节点选型与初始化四条主线展开,最终形成一套可复用的自动化装机底座。
一、管理网络规划:先定地址,再谈自动化
Xeon 服务器通常具备 BMC(如 iDRAC、iLO、IPMI)带外管理口和至少两个业务网口。自动化运维要求管理流量与业务流量物理或逻辑隔离,避免 PXE 广播、DHCP 分配和 BMC 心跳干扰生产网络。建议规划三个网段:
- 带外管理网:例如 10.10.0.0/24,网关 10.10.0.1,用于 BMC 的 IPMI/Redfish 访问、KVM 重定向和电源控制。
- PXE 装机网:例如 10.20.0.0/24,网关 10.20.0.1,DHCP、TFTP、HTTP 服务均部署在此网段,新机通过该网段获取引导文件。
- 业务数据网:例如 192.168.100.0/24,承载实际业务流量,装机完成后由配置管理工具接管。
地址分配上,BMC 建议采用静态地址或 DHCP 保留,PXE 网段使用 DHCP 动态池,业务网段由 CMDB 统一登记。规划时需明确:每台 Xeon 的 BMC MAC、PXE 网卡 MAC、业务网卡 MAC 三组信息,这是后续 DHCP 保留和自动化识别的基础。
二、PXE/HTTP/TFTP 服务部署
PXE 启动依赖三个服务协同:DHCP 提供 IP 和引导文件名,TFTP 传输引导程序(如 pxelinux.0、grubx64.efi),HTTP 提供内核、initrd 和安装源。以 CentOS/Rocky Linux 控制节点为例,部署过程如下:
# 安装基础服务
dnf install -y dhcp-server tftp-server httpd syslinux-tftpboot
# 准备 TFTP 根目录
mkdir -p /var/lib/tftpboot/pxelinux.cfg
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp /usr/share/syslinux/ldlinux.c32 /var/lib/tftpboot/
# 挂载 ISO 并复制安装源到 HTTP 目录
mount -o loop /data/Rocky-9.iso /mnt
mkdir -p /var/www/html/rocky9
cp -a /mnt/. /var/www/html/rocky9/
cp /var/www/html/rocky9/images/pxeboot/vmlinuz /var/lib/tftpboot/
cp /var/www/html/rocky9/images/pxeboot/initrd.img /var/lib/tftpboot/
随后编写 PXE 引导菜单 /var/lib/tftpboot/pxelinux.cfg/default,指定内核、initrd 和 kickstart 文件路径。kickstart 文件放在 HTTP 目录下,例如 http://10.20.0.10/ks/xeon-base.ks,其中定义分区、时区、root 密码、网卡绑定和初始用户。这样新机加电后即可自动完成系统安装,无需人工插盘。
三、DHCP 与 DNS 配置要点
DHCP 是 PXE 的入口,配置时必须区分“引导请求”和“普通地址请求”。在 /etc/dhcp/dhcpd.conf 中,针对 PXE 网段设置 next-server 指向 TFTP 服务器地址,filename 指向引导文件。对于 UEFI 启动的 Xeon,需使用 grubx64.efi;对于 Legacy BIOS,则使用 pxelinux.0。可通过 class 匹配 option arch 实现双模式共存:
subnet 10.20.0.0 netmask 255.255.255.0 {
range 10.20.0.100 10.20.0.200;
option routers 10.20.0.1;
option domain-name-servers 10.20.0.10;
next-server 10.20.0.10;
filename "pxelinux.0";
}
class "pxeclients" {
match if substring(option vendor-class-identifier,0,9) = "PXEClient";
if option arch = 00:07 {
filename "grubx64.efi";
} else {
filename "pxelinux.0";
}
}
DNS 方面,控制节点可部署 BIND 或 dnsmasq,为管理网和 PXE 网提供正向与反向解析。建议为每台 Xeon 建立 bmc-01、node-01 等 A 记录,并配置 PTR 反向记录,便于 Ansible 通过主机名批量操作。若规模较小,也可用 /etc/hosts 配合 dnsmasq 的 addn-hosts 实现轻量解析。
四、控制节点选型与初始化
控制节点是整套自动化体系的“大脑”,选型时关注三点:一是网络吞吐,建议双万兆网卡绑定,分别接入 PXE 网和业务网;二是存储可靠性,系统盘做 RAID1,安装源和日志盘单独挂载;三是资源余量,CPU 不低于 8 核、内存不低于 32 GB,以支撑并发装机与 Ansible 任务。操作系统建议与目标 Xeon 节点保持一致,减少工具链差异。
初始化控制节点时,按以下顺序落地:关闭 SELinux 或设为 permissive、配置 chrony 时间同步、设置静态 IP 与主机名、安装并启动 dhcp-server/tftp-server/httpd/named、放行防火墙端口、创建 ansible 运维用户并配置 SSH 免密。完成后用一台待装 Xeon 做验证:加电后观察是否获取到 10.20.0.x 地址、是否加载 grubx64.efi、是否自动进入 kickstart 安装流程。若卡在 TFTP 阶段,优先检查 /var/log/messages 中 tftp 的拒绝记录和防火墙 UDP 69 是否放行。