告别Web界面:用Postman玩转服务器BMC的12个Redfish实战操作(含Session管理避坑)
2026/6/8 7:11:31 网站建设 项目流程

告别Web界面:用Postman玩转服务器BMC的12个Redfish实战操作(含Session管理避坑)

在数据中心运维和服务器管理中,Redfish作为新一代硬件管理接口标准,正逐步取代传统的IPMI协议。然而,许多工程师仍习惯于通过Web界面进行点对点操作,这种方式在批量管理、自动化测试和持续集成场景中显得力不从心。本文将带你解锁Postman这一API开发利器,构建完整的Redfish自动化工作流。

1. 为什么选择Postman进行Redfish接口测试

传统Web界面操作存在三个明显短板:无法批量执行难以集成到自动化流程缺乏可复用的测试案例。而Postman恰好能解决这些问题:

  • 环境变量管理:全局/集合/环境三级变量体系,轻松切换不同服务器配置
  • 测试脚本集成:支持JavaScript编写预处理和断言脚本,实现自动化校验
  • 集合运行器:批量执行接口调用序列,生成可视化报告
  • 团队协作:通过共享集合实现知识沉淀,降低新人学习成本

以电源控制为例,当需要同时对50台服务器执行关机→配置更新→开机的操作序列时,Web界面需要人工逐台操作至少150次,而Postman集合运行只需一次触发。

2. 环境准备与认证机制深度解析

2.1 基础环境配置

首先需要关闭SSL证书验证(仅测试环境适用):

File → Settings → General → SSL certificate verification → OFF

建议创建以下环境变量:

变量名示例值作用域
deviceip192.168.1.100环境变量
bmc_useradmin全局变量
bmc_passwordYourComplexPwd123全局变量

2.2 Session管理的最佳实践

Redfish的Session认证涉及两个关键头部:

  • X-Auth-Token:身份验证令牌
  • ETag:资源版本控制标识

登录接口示例:

POST https://{{deviceip}}/redfish/v1/SessionService/Sessions Headers: { "Content-Type": "application/json" } Body: { "UserName": "{{bmc_user}}", "Password": "{{bmc_password}}" }

在Tests脚本中处理Token:

const token = pm.response.headers.get("X-Auth-Token"); pm.globals.set("X-Auth-Token", token); // 验证响应状态 pm.test("Status code is 201", () => { pm.response.to.have.status(201); });

注意:生产环境应定期轮换Token,建议设置定时器每30分钟重新获取

3. 服务器资产管理全流程自动化

3.1 资产信息采集

通过GET请求获取系统详情:

GET https://{{deviceip}}/redfish/v1/Systems/1 Headers: { "X-Auth-Token": "{{X-Auth-Token}}" }

典型响应字段解析:

{ "Manufacturer": "Dell", "Model": "PowerEdge R740", "SerialNumber": "ABC123456", "ProcessorSummary": { "Count": 2, "Model": "Intel Xeon Gold 6248R" }, "MemorySummary": { "TotalSystemMemoryGB": 256 } }

建议在Tests脚本中添加数据校验:

const jsonData = pm.response.json(); pm.test("Verify system model", () => { pm.expect(jsonData.Model).to.include("PowerEdge"); });

3.2 电源控制三连击

服务器电源管理支持多种操作模式:

操作类型请求体参数适用场景
正常关机{"ResetType":"GracefulShutdown"}允许应用保存数据
强制重启{"ResetType":"ForceRestart"}系统无响应时使用
开机{"ResetType":"On"}冷启动设备

示例请求:

POST https://{{deviceip}}/redfish/v1/Systems/1/Actions/ComputerSystem.Reset Headers: { "X-Auth-Token": "{{X-Auth-Token}}", "Content-Type": "application/json" } Body: { "ResetType": "GracefulShutdown" }

4. 用户账户全生命周期管理

4.1 创建高权限账户

账户创建需要指定角色类型:

POST https://{{deviceip}}/redfish/v1/AccountService/Accounts Headers: { "X-Auth-Token": "{{X-Auth-Token}}", "Content-Type": "application/json" } Body: { "Id": "10", "UserName": "api_operator", "Password": "SecurePwd@2023", "RoleId": "Administrator" }

可用角色类型对照表:

RoleId权限级别
Administrator完全控制权限
Operator常规操作权限
ReadOnly只读权限

4.2 用户信息修改的原子性操作

修改用户信息需要遵循ETag机制:

  1. 先获取用户当前信息(包含ETag)
  2. 使用获取到的ETag进行修改
PATCH https://{{deviceip}}/redfish/v1/AccountService/Accounts/10 Headers: { "X-Auth-Token": "{{X-Auth-Token}}", "Content-Type": "application/json", "If-Match": "{{ETag}}" } Body: { "Password": "NewSecurePwd@2024" }

关键点:ETag机制防止并发修改冲突,类似乐观锁机制

5. 网络配置与BIOS设置的进阶技巧

5.1 管理网络接口配置

获取网口信息时注意MAC地址定位:

GET https://{{deviceip}}/redfish/v1/Managers/1/EthernetInterfaces/10c3ab155768

修改IP地址的完整示例:

PATCH https://{{deviceip}}/redfish/v1/Managers/1/EthernetInterfaces/10c3ab155768 Headers: { "X-Auth-Token": "{{X-Auth-Token}}", "Content-Type": "application/json", "If-Match": "{{ETag}}" } Body: { "IPv4Addresses": [{ "Address": "192.168.100.100", "SubnetMask": "255.255.255.0", "Gateway": "192.168.100.1" }] }

5.2 BIOS参数批量调整

获取当前BIOS设置:

GET https://{{deviceip}}/redfish/v1/Systems/1/Bios/Settings

修改启动顺序的实战示例:

PATCH https://{{deviceip}}/redfish/v1/Systems/1/Bios/Settings Headers: { "X-Auth-Token": "{{X-Auth-Token}}", "Content-Type": "application/json", "If-Match": "{{ETag}}" } Body: { "Attributes": { "BootMode": "Uefi", "BootTypeOrder0": "NvmeDrive", "BootTypeOrder1": "UsbDrive", "BootTypeOrder2": "PXE" } }

6. 构建自动化测试工作流

将12个操作封装为Postman集合后,可以通过Newman命令行工具集成到CI/CD流程:

newman run Redfish_Collection.json \ --env-var deviceip=192.168.1.100 \ --env-var bmc_user=admin \ --env-var bmc_password=YourPwd \ --reporters cli,json

典型工作流阶段:

  1. 预检阶段:验证BMC连通性、获取资产快照
  2. 配置阶段:网络设置、用户管理、BIOS调整
  3. 验证阶段:检查配置生效情况
  4. 恢复阶段:回滚测试环境

在真实项目中,我们通过这种方案将服务器固件更新的平均耗时从45分钟/台缩短到8分钟/台,且完全避免了人工操作错误。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询