3. 带外管理入门
带外管理(Out-of-Band Management)是服务器运维中一条独立于操作系统的“生命线”。当主机宕机、系统无法启动、网络栈崩溃,甚至尚未安装操作系统时,只要服务器接通电源、BMC(Baseboard Management Controller,基板管理控制器)所在的管理网口可达,运维人员就能远程完成开关机、查看硬件状态、挂载虚拟介质、读取传感器与日志等操作。Supermicro 服务器上的 BMC 通常以独立网口(标有 IPMI/LAN、Dedicated LAN 或 MGMT)或共享网口(NCSI/Sideband)形式存在,理解它的网络配置与访问方式是批量自动化运维的起点。
BMC 网络配置:先让管理口“可达”
BMC 拥有完全独立的 MAC 地址、IP 地址与网络协议栈,与主机操作系统互不干扰。初始配置通常有三种途径:一是在 BIOS/UEFI 的 IPMI 配置界面中设置;二是通过开机自检时按提示进入 BMC Web 界面或专用配置工具;三是借助厂商工具(如 Supermicro 的 IPMICFG、SMCIPMITool)在操作系统内直接写入。无论哪种方式,核心参数都包括:IP 地址、子网掩码、默认网关、VLAN(若管理网划分了 VLAN)、以及访问模式(Dedicated 专用口或 Shared 共享口)。
一个常见的教学示例是:管理网段规划为 192.168.30.0/24,网关 192.168.30.1,为每台服务器 BMC 分配固定 IP,例如 192.168.30.101 起顺序编号。使用 IPMICFG 在 Linux 下配置的典型命令如下:
# 查看当前 BMC 网络配置
./IPMICFG-Linux.x86_64 -m
# 设置静态 IP、掩码、网关
./IPMICFG-Linux.x86_64 -m 192.168.30.101 255.255.255.0 192.168.30.1
# 指定使用专用管理口(Dedicated)
./IPMICFG-Linux.x86_64 -lancfg dedicated
# 查看 BMC 用户列表
./IPMICFG-Linux.x86_64 -ul
配置完成后,用 ping 192.168.30.101 验证连通性,再通过浏览器访问 https://192.168.30.101 进入 BMC Web 界面。默认凭据通常为 ADMIN/ADMIN 或 ADMIN/<机箱序列号后几位>,首次登录后应立即修改密码并创建独立运维账号,避免所有服务器共用同一口令。
IPMI 命令:脚本化运维的“老将”
IPMI(Intelligent Platform Management Interface)是带外管理的经典协议,ipmitool 是 Linux 下最常用的客户端。它通过 RMCP+(UDP 623 端口)与 BMC 通信,支持本地和远程两种模式。远程操作必须使用 -I lanplus 指定加密传输,否则明文凭据在网络中裸奔。以下是一组可直接复用的命令示例:
# 远程开机
ipmitool -I lanplus -H 192.168.30.101 -U ADMIN -P 'YourPass' power on
# 查看电源状态
ipmitool -I lanplus -H 192.168.30.101 -U ADMIN -P 'YourPass' power status
# 读取所有传感器(温度、电压、风扇)
ipmitool -I lanplus -H 192.168.30.101 -U ADMIN -P 'YourPass' sensor list
# 查看 FRU 资产信息(序列号、型号)
ipmitool -I lanplus -H 192.168.30.101 -U ADMIN -P 'YourPass' fru print
# 进入 SOL 串口重定向(需先激活)
ipmitool -I lanplus -H 192.168.30.101 -U ADMIN -P 'YourPass' sol activate
批量场景下,可以把 IP 列表写入文件,用 shell 循环逐台执行,例如 for ip in $(cat bmc_list.txt); do ipmitool ... power status; done。需要注意:IPMI 1.5 与 2.0 的加密能力不同,Supermicro 较新机型默认启用 IPMI 2.0;若连接失败,先确认 BMC 固件版本与端口 623 是否被防火墙拦截。另外,sensor list 输出中若出现 no reading 或 disabled,通常表示该传感器未接或未启用,而非故障。
Redfish API:面向自动化的现代接口
Redfish 是 DMTF 制定的 RESTful 管理标准,使用 HTTPS(443 端口)与 JSON 数据格式,比 IPMI 更适合与 Ansible、Python、监控平台集成。Supermicro BMC 固件在较新版本中均提供 /redfish/v1/ 根入口。访问前先获取会话令牌,再携带令牌调用资源:
# 获取会话令牌
curl -k -X POST https://192.168.30.101/redfish/v1/SessionService/Sessions \
-H "Content-Type: application/json" \
-d '{"UserName":"ADMIN","Password":"YourPass"}'
# 返回头中 X-Auth-Token 即为令牌,后续请求携带
curl -k -H "X-Auth-Token: <token>" \
https://192.168.30.101/redfish/v1/Systems/1
# 执行重启(GracefulRestart 或 ForceRestart)
curl -k -X POST -H "X-Auth-Token: <token>" \
-H "Content-Type: application/json" \
-d '{"ResetType":"GracefulRestart"}' \
https://192.168.30.101/redfish/v1/Systems/1/Actions/ComputerSystem.Reset
Redfish 返回的 JSON 中,PowerState 表示当前电源状态,Status/Health 表示健康度,Boot/BootSourceOverrideTarget 可设置下次启动设备(如 Pxe、Cd、Hdd)。这些字段正是自动化平台判断“机器是否就绪、该不该重装”的依据。相比 IPMI 的文本解析,Redfish 的字段稳定、语义清晰,适合作为批量配置系统的底层驱动。
三种方式如何选择
人工排查、首次上架配置,优先用 Web 界面,直观且能挂载 ISO;临时批量开关机、读取传感器,用 IPMI 命令最快;要接入自动化平台、做持续状态采集与编排,则选 Redfish API。三者并非互斥,实际运维中常常组合使用:用 Redfish 做日常状态轮询,用 IPMI 做紧急强制下电,用 Web 界面处理虚拟介质和固件升级。掌握这三条路径,就掌握了 Supermicro 服务器带外管理的入口,后续的批量配置、固件统一升级与无人值守装机才有稳定的落脚点。