带外管理72 条

Redfish 电源操作

用 Redfish 动作控制电源:POST ComputerSystem.Reset 并按枚举指定 ResetType,适合纳入自动化运维流程。

Redfish 电源操作

Redfish 是 DMTF 定义的 RESTful 带外管理接口,现代 iDRAC、iLO、iBMC 都提供。电源控制通过向 ComputerSystem 资源的 Reset 动作发 POST 实现,请求体里用 ResetType 枚举说明要做什么:从礼貌关机到强制断电都在同一个接口里,只是枚举值不同。因为它是纯 HTTP/JSON 调用,很容易接进批量脚本与运维平台,但也意味着一条拼错的枚举值不会「部分成功」,只会得到 400。

基本信息

适用设备支持 Redfish 的 BMC:iDRAC、iLO、iBMC 等
认证方式先创建会话取 X-Auth-Token,或使用 Basic 认证
系统资源/redfish/v1/Systems/System.Embedded.1(厂商命名不同)
动作路径/Actions/ComputerSystem.Reset
请求方法POST,Content-Type 为 application/json
状态查询GET 系统资源查看 PowerState(On/Off)

典型使用场景

  • 批量运维平台统一开关机,不依赖各厂商命令行工具
  • 计划维护窗口里执行礼貌关机或礼貌重启
  • 卡死无法登录时用强制断电做最后手段
  • 自动化交付流程中开机、装机后重启等阶段切换
  • 与监控联动:异常检测后按策略触发重启(须有审计与限额)

会话与电源操作

会话与电源操作
# 建立 Redfish 会话,获取 X-Auth-Token
curl -k -s -X POST https://10.0.0.10/redfish/v1/SessionService/Sessions \
  -H 'Content-Type: application/json' \
  -d '{"UserName":"admin","Password":"<pass>"}' -D -
# 查询当前电源状态,避免盲目发操作
curl -k -s https://10.0.0.10/redfish/v1/Systems/System.Embedded.1 -H 'X-Auth-Token: <token>' | grep -i powerstate
# 执行礼貌重启
curl -k -s -X POST https://10.0.0.10/redfish/v1/Systems/System.Embedded.1/Actions/ComputerSystem.Reset \
  -H 'Content-Type: application/json' -H 'X-Auth-Token: <token>' \
  -d '{"ResetType": "GracefulRestart"}'
# 强制断电(等效硬操作,业务会直接中断)
# -d '{"ResetType": "ForceOff"}'

ResetType 取值与行为

ResetType行为使用注意
On开机对已开机的系统无效果
GracefulShutdown礼貌关机(依赖 ACPI 与 OS 配合)系统卡死时可能超时无效
GracefulRestart礼貌重启常规维护优先选它
ForceOff强制断电等效拔电,可能损坏未落盘数据
ForceRestart强制重启等效硬复位
Nmi触发不可屏蔽中断用于抓取现场,非通用重启
HTTP 状态码是排查的第一线索:401 多见于令牌缺失或过期,400 多为枚举值拼写或字段错误,404 说明资源路径与机型不匹配。
ForceOff 与 ForceRestart 属于硬操作:执行前确认业务可中断并已通知相关方,自动化流程里应对这两个取值单独设审批或限额。

易错点

  • 枚举值拼写错误:接口返回 400,比硬操作更安全但会让脚本静默失败,需要显式检查返回码
  • 忘记带 X-Auth-Token:401 常被误判为网络或权限问题,实际只是没建会话或令牌已过期
  • 不看 PowerState 直接发 On 或 Off:状态与预期不符时操作无效果却以为失败
  • 把强制断电接进无人值守流程:缺少审批与限流时,一次脚本缺陷就可能批量中断业务

数据来源与参考

  • Dell iDRAC Redfish API 指南(ComputerSystem.Reset)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌