装备定制化设置用户名和密码不生效

问题描述

装备定制化里设置用户名和密码,导入不生效

环境信息

  • 操作系统:[如 Ubuntu 24.04]

  • 软件版本:[如 OpenUBMC2512]

重现步骤

  1. [装备定制化配置文件]

BMCSet_WeakPasswdDictionaryCheck=off
Custom_AdminAccess=admin
Custom_AdminWritable=on
BMCSet_CustomAdminInfo=on
Custom_AdminName=root
Custom_AdminPassword=qwer@qaz123
Custom_AdminFirstLoginPolicy=1
BMCSet_ETH0_DHCPMode=off
BMCSet_Eth0_Ipv4=on
Custom_Eth0_Ip_Addr=192.168.2.100/24
Custom_ipv4_gateway=192.168.2.254
BMCSet_Hostname=on
Custom_SerialNUM=test

  1. [第二步]

customst.init 文件上传到bmc /tmp目录

  1. [第三步]

os下执行:

ipmi 导入命令: ipmitool raw 0x30 0x90 0x21 0xf0

期望结果

登录的用户名和密码会改变成装备定制化配置里的内容

实际结果

装备定制化中的ip配置生效, hostname配置生效, 用户名和密码未生效

装备定制化的ini 不能设置用户名密码,而是ipmi去设置的。如果你的ini有用户名密码大概实现还是基于脚本额外扫描了ini,然后单独提取给ipmi,而不是导入内部执行

app.log2.txt (31.8 KB) 这个是采集的日志

当前 account 的 profile_schema 里支持的是账号策略类字段。

profile_schema 里没有 BMCSet_CustomAdminInfo、Custom_AdminName、Custom_AdminPassword、Custom_AdminFirstLoginPolicy
这些用户名/密码类字段,因此仅把这些字段写进 customset.ini 后触发通用导入,不会修改 Administrator 用户名和密码。日志里
的 account Import data is invalid 也和这些不支持字段有关。

还有如果假如你说你们装备是说可以设置,那大概是我说的那样

1 个赞

答案内容由AI生成,仅供参考:
总结

要解决您的问题,请放弃通过 customset.ini 设置用户名和密码的尝试。应该使用 IPMI命令(例如您步骤三中使用的 ipmitool 命令)来专门设置用户名和密码,而不是依赖装备定制化的通用配置文件导入流程。

点击此处查看详细分析解答

根据提供的上下文,您遇到的“装备定制化设置用户名和密码不生效”问题,其根本原因在于 customset.ini 配置文件中涉及用户名和密码的字段(BMCSet_CustomAdminInfo, Custom_AdminName, Custom_AdminPassword, Custom_AdminFirstLoginPolicy)不被 account 组件的 profile_schema 所支持

以下是详细的解释和结论:

1. 根本原因:字段不支持

根据社区专家(用户 arch)的分析,account 组件的 profile_schema 只支持账号策略类的字段。您配置文件中用于修改用户名和密码的字段,例如 BMCSet_CustomAdminInfoCustom_AdminName 等,并不在 profile_schema 的支持列表中。

  • 结果:当您通过通用导入流程触发这些字段时,系统会将其识别为无效数据,从而导致用户名和密码的修改失败。日志中的 account Import data is invalid 错误也与此相关。
  • 对比:IP配置和主机名配置生效,是因为它们属于 profile_schema 支持的其他配置类别。

2. 正确的用户名/密码设置路径

装备定制化的初衷并非通过 customset.ini 直接设置用户名和密码。正确的设置路径是通过 IPMI命令 来完成。

  • 社区回复原文:“装备定制化的ini 不能设置用户名密码,而是ipmi去设置的。如果你的ini有用户名密码大概实现还是基于脚本额外扫描了ini,然后单独提取给ipmi,而不是导入内部执行”。

这意味着,即使某些脚本实现能从 ini 文件中提取用户名和密码信息,其本质执行者仍是IPMI命令,而非装备定制化的通用导入机制。

3. 另一种修改途径

除了装备定制化,您还可以通过直接修改源代码并重新构建组件的方式来更改默认账户信息。但这属于更深度的定制,通常用于镜像构建阶段,而非装备阶段的在线配置。相关修改涉及 account 组件的 manufacture/default_datas.luamanufacture/default_password.lua 文件。

总结

要解决您的问题,请放弃通过 customset.ini 设置用户名和密码的尝试。应该使用 IPMI命令(例如您步骤三中使用的 ipmitool 命令)来专门设置用户名和密码,而不是依赖装备定制化的通用配置文件导入流程。

这个写在ini里面的账户和密码,单靠下发ipmitool raw 0x30 0x90 0x21 0xf0命令是不行的,需要在系统下使用一整套装备生产脚本,在脚本里面会调用ipmi命令进行用户定制