【栏目介绍:“玩转OurBMC”是OurBMC社区开创的知识分享类栏目,主要聚焦于社区和BMC全栈技术相关基础知识的分享,全方位涵盖了从理论原理到实践操作的知识传递。OurBMC社区将通过“玩转OurBMC”栏目,帮助开发者们深入了解到社区文化、理念及特色,增进开发者对BMC全栈技术的理解。
欢迎各位关注“玩转OurBMC”栏目,共同探索OurBMC社区的精彩世界。同时,我们诚挚地邀请各位开发者向“玩转OurBMC”栏目投稿,共同学习进步,将栏目打造成为汇聚智慧、激发创意的知识园地。】
本期内容我们来聊聊在 OpenBMC 的 WebUI 中,那些看似不起眼却至关重要的 “.env.ourbmc”、“.env.intel” 等配置文件。如果你是一位webui-vue开发者、bmc开发者,或者对网页制作感兴趣,这篇文章将为你揭开这些文件背后的奥秘。
当你深入研究 OpenBMC的代码或部署时,可能会在WebUI的配置目录中发现一些以.env.ourbmc”、“.env.intel”等命名的配置文件以及env目录下面还有导航,store,路由,风格配置,均以”ourbmc”,”intel”这样的名字命名。

01 这些文件是什么
其实这一系列组合拳的标准学名叫做 “模式管理”,并且webui-vue与普通的前端项目不同,他在“模式管理”这一块是强绑定的。webui-vue在设计的初衷就希望bmc开发人员(不懂前端代码的开发人员)可以在webui-vue_git.bb文件中设置自己想要的模式,因此在 . bb文件中留出了一个${EXTRA_OENPM}选项。

webui-vue的开发人员对这个功能更加需要了解,下载项目后直接编译必然报错,因为缺少了对.env.development.local这个文件的配置。.env.development.local专门服务于开发者模式(开发者模式一般应用与npm run serve,可以热加载,便于编译人员实时观测网页变化),其中BASE_URL的配置可以指向真机,便可以与其后端通信,进行进一步的调试开发。

02 参数详解
除了用于指向真机的 BASE_URL参数,其他参数在开发者模式与生产模式下均实现功能共用。
Vue_APP_ENV_NAME是CUSTOM_xxx配置的核心,后续CUSTOM_xxx配置是否启用就是取决于配置文件的功能或文件名是否与Vue_APP_ENV_NAME相同。

CUSTOM_STYLES为true时,通用目录的所有样式即刻失效,取而代之的是env/style目录下的ourbmc.scss文件生效。
CUSTOM_APP_NAV为true时,通用目录的所有路由即刻失效,取而代之的是env/components/AppNavigation目录下的ourbmc.ts文件生效。
CUSTOM_ROUTER为true时,通用目录的所有路由即刻失效,取而代之的是env/router目录下的ourbmc.ts文件生效。
CUSTOM_STORE管理的配置和其他几项不同,CUSTOM_STORE为true时,通用目录的store依然生效,但是env/store目录下的ourbmc.ts文件也会生效,作为store的扩充。registerModule函数将会增加通用目录没有的,当前模式又需要的module。

VUE_APP_XXX等配置均为项目需要用的自定义配置,结合实际情况可以自行修改。
03 为什么需要这些配置文件
你可能会有疑问: OpenBMC本身不是统一的吗?为什么还需要厂商特定的配置?
硬件差异:
不同厂商的服务器,其硬件组件(如传感器类型、 FRU信息、LED指示灯位置、风扇布局等)千差万别。例如,IBM的某款服务器可能有独特的电压监控点,而Intel的某款主板可能有一套自定义的风扇调速策略。
界面定制:
为了提供最佳的用户体验, WebUI需要根据硬件能力动态展示相关的监控数据和控制选项。 .env.ibm 文件会告诉 WebUI:“如果是IBM的XX型号服务器,请显示A、B、C传感器,并隐藏D功能。” 同理,. env.ourbmc 文件会指导 WebUI为 ourbmc 平台展示特定的管理选项。
功能启用 /禁用:
某些高级功能可能是特定厂商独有的。通过配置文件,可以精确控制哪些功能对最终用户可见、可操作,确保界面的简洁与安全。
04 小文件,大智慧
在开源软件的世界里,正是这些看似微小的设计,构建了强大而灵活的生态系统。 OpenBMC WebUI中的. env. ibm、 .env. intel等配置文件,正是这一理念的完美体现。它们如同一个个“翻译官”或“定制师”,确保了同一套开源软件能够无缝适配于全球各种复杂的服务器硬件之上。
下次当你登录 OpenBMC的WebUI,流畅地查看服务器状态时,不妨想起背后这些默默工作的配置文件——它们正是让开源硬件管理如此 “丝滑” 的幕后英雄。
欢迎大家关注OurBMC社区,了解更多BMC技术干货。
OurBMC社区官方网站:
                                                                                </div> 
 
				     
 
				    