当前位置: 首页 > news >正文

OpenBMC:WebUI 与后端接口交互流程

OpenBMC:WebUI 与后端接口交互流程

1. WebUI 的作用

OpenBMC WebUI 为管理员提供图形化管理界面,常见功能包括:

  • 查看服务器状态
  • 读取传感器数据
  • 控制主机电源
  • 查看事件日志
  • 配置用户和网络
  • 管理固件版本
  • 使用远程控制台
  • 查看硬件 Inventory

WebUI 本身通常不直接访问 D-Bus,也不会直接操作 GPIO、I2C 或其他硬件接口。

WebUI ↓ HTTPS bmcweb ↓ D-Bus OpenBMC 后台服务 ↓ 硬件驱动

2. WebUI 与 bmcweb

WebUI 通常以浏览器端单页应用的形式运行。页面所需的 HTML、JavaScript、CSS 和图片资源由 BMC Web 服务提供。

用户打开 BMC 地址时:

浏览器请求页面 ↓ bmcweb 返回静态资源 ↓ 浏览器加载 WebUI ↓ WebUI 调用 Redfish API ↓ 页面显示管理数据

bmcweb同时承担以下职责:

  • 提供 HTTPS 服务
  • 提供 WebUI 静态资源
  • 实现 Redfish 接口
  • 管理登录会话
  • 检查用户权限
  • 访问 D-Bus 后台服务
  • 支持事件订阅和远程控制功能

3. 登录认证流程

WebUI 登录时,通常通过 Redfish Session Service 创建会话。

用户输入账号和密码 ↓ WebUI 发送登录请求 ↓ bmcweb 调用认证机制 ↓ 验证用户、密码和账号状态 ↓ 创建 Session ↓ 返回 X-Auth-Token

登录请求示例:

POST /redfish/v1/SessionService/Sessions Content-Type: application/json { "UserName": "admin", "Password": "password" }

后续请求携带 Token:

X-Auth-Token: <session-token>

bmcweb 收到请求后,还会检查当前用户角色是否拥有访问该接口的权限。


4. 数据查询流程

以 WebUI 显示温度传感器为例:

WebUI 请求 Sensors 资源 ↓ bmcweb 接收 Redfish GET 请求 ↓ 通过 ObjectMapper 查找 Sensor 对象 ↓ 读取 Sensor.Value 和 Threshold ↓ 读取 Sensor 与 Chassis 的关联关系 ↓ 转换为 Redfish JSON ↓ WebUI 更新页面

请求示例:

GET /redfish/v1/Chassis/chassis/Sensors

返回数据可能包含:

{ "Name": "CPU0 Temp", "Reading": 52.5, "ReadingUnits": "Cel", "Status": { "Health": "OK", "State": "Enabled" } }

WebUI 只处理 Redfish 数据,不需要了解传感器来自 hwmon、PMBus 还是其他接口。


5. 控制请求流程

以主机上电为例,WebUI 会发送一个 Redfish Action:

POST /redfish/v1/Systems/system/Actions/ComputerSystem.Reset { "ResetType": "On" }

完整流程如下:

用户点击上电 ↓ WebUI 发送 POST 请求 ↓ bmcweb 检查 Session 和权限 ↓ 解析 ResetType ↓ 设置 D-Bus 电源转换属性 ↓ 电源控制服务执行上电 ↓ 主机电源状态变化 ↓ WebUI 重新查询并刷新状态

网络设置、用户管理和日志清理等操作也采用类似模式,只是对应的 Redfish 路径和后台 D-Bus 服务不同。


6. 常用 HTTP 方法

WebUI 与 Redfish 后端交互时,主要使用以下方法:

方法用途
GET查询资源
POST创建资源或执行动作
PATCH修改资源属性
DELETE删除资源
HEAD查询资源响应头

例如修改 BMC 主机名:

PATCH /redfish/v1/Managers/bmc/NetworkProtocol

创建用户、启动固件升级和执行电源动作,则通常使用POST


7. 异步任务与事件更新

固件升级、日志导出和大文件上传等操作无法立即完成,bmcweb 可以返回 Task 或 Job 资源。

WebUI 发起操作 ↓ bmcweb 创建异步任务 ↓ 返回任务地址 ↓ WebUI 周期查询任务状态 ↓ 显示进度和执行结果

任务状态可能包括:

New Starting Running Completed Exception Cancelled

实时状态也可以通过事件订阅或服务器推送机制更新,减少页面频繁轮询。


8. 总结

WebUI 与 OpenBMC 后端的交互链路为:

浏览器 WebUI ↓ HTTPS / JSON bmcweb ↓ D-Bus 传感器、电源、日志、用户和升级服务 ↓ Linux 内核及硬件

WebUI 负责界面和用户操作,bmcweb 负责认证、权限检查及 Redfish 转换,D-Bus 服务负责具体业务,内核驱动负责访问硬件。

http://www.jsqmd.com/news/1392419/

相关文章:

  • OneNote 笔记搬家到 Markdown:用 onenote-md-exporter 一劳永逸的完整教程
  • 【GitOps·入门篇】工具生态:ArgoCD、Flux、Jenkins X 对比选型
  • 2026年智慧步道建设指南:从硬件到运营的全链路解析
  • 聊天记录都在,模型为什么还是会“忘记”?
  • 基于 Java Web 的在线学习教育平台管理系统的设计与实现-----附源码85799-----课程、报名、考试与教学管理的一体化实现
  • TypeScript 灵魂拷问:type 和 interface 到底怎么选?
  • 闲置盒马卡别吃亏!2026年详解盒马卡回收一般几折 - 京顺回收
  • 山东本地综合实力强的职业院校推荐:选校时值得关注的几个维度 - 2027品牌AI展
  • 从一句主题到一支成片:Pixelle-Video 零门槛全自动短视频引擎
  • 视觉自动化测试新范式:用Midscene.js让AI替你点遍全平台界面
  • 告别报错弹窗!NDI Runtime 修复的 8 步阶梯式自救指南(DistroAV 新手向)
  • BarTender提示#807错误:无法在拥有其他许可证的LicensingService上激活节点锁定的 Professional 版许可证 的解决办法
  • 设计高效的 Agentic AI Workflows:从企业流程到 Agent 执行图
  • 2026年福建3D床垫厂家 选品迷茫 适配多需求参考 - 甄选测评馆
  • 【AI智能体速通】06.推理与规划的业务用例
  • 让一张静态照片学会跳舞:ComfyUI-MimicMotionWrapper视频动作迁移从零到一实战
  • 元宇宙对世界模型发展的启发与借鉴意义——以半导体晶圆厂为例
  • 为什么说老金团队是在职备考的“时间合伙人”?
  • 2026 株洲钢琴搬运设备搬运,企业公司搬迁怎么预约服务 - LYL仔仔
  • 2026年国内多媒体信息发布系统厂家 解决适配难题 热门推荐 - 甄选测评馆
  • QQ空间说说一键备份到本地:3步把十年历史说说永久保存
  • 钉钉模拟位置怎么设?Xposed 钉钉助手 3 分钟快速上手指南
  • 嵌入式从0到精通——C语言位运算
  • 软件开发各阶段:阶段目标、核心工具、常用技术
  • 不是只改API地址:我把OpenWiki接入蓝耘元生代,完整实测代码文档生成与增量更新
  • 点赞动画可以先跑,接口状态必须能回滚
  • C++ OpenCV复刻Photoshop HSL分通道调色|六色独立羽化调节、非线性光影映射、适配图像修图与视觉检测
  • 2026年义乌西装定制指南:千元到万元预算全解析 - 新闻快传
  • 缓存命中率99.93%,DeepSeek最适合的Harness来了,GitHub狂揽8.6万Star
  • 学 Simulink—— 考虑电网频率波动的整流器锁相环(PLL)失锁分析仿真