0

我管理大量的服务器,我正在尝试编写一个 bash 脚本来使用 ipmitool 检查他们的 BMC。这是我正在做的事情的本质:

...
admin=$(ipmitool -U user -P pasw -I lanplus -H $ipmi user list | grep " user " | awk '{print $1}')
chn=$(ipmitool -U user -P pasw -I lanplus -H 10.100.10.3 channel info | grep -e '^Channel.*info:' | awk '{print $2}')
ipmitool -U user -P pasw -I lanplus -H $ipmi user priv $admin 4 $chn
ipmitool -U user -P pasw -I lanplus -H $ipmi channel setaccess $chn $admin callin=on ipmi=on link=on privilege=4
ipmitool -U user -P pasw -I lanplus -H $ipmi sol payload enable $chn $admin
ipmitool -U user -P pasw -I lanplus -H $ipmi sol set volatile-bit-rate 115.2 $chn
ipmitool -U user -P pasw -I lanplus -H $ipmi sol set non-volatile-bit-rate 115.2 $chn
ipmitool -U user -P pasw -I lanplus -H $ipmi sol looptest 1
...

在我到达sol set ...失败的命令之前它工作正常:

Error setting SOL parameter 'set-in-progress': Attempt to set set-in-progress when not in set-complete state
Error: set of parameter "volatile-bit-rate" failed

sol set ...从 ipmi shell看:

ipmitool -U user -P pasw -I lanplus -H $ipmi shell

我懂了:

ipmitool> sol set

SOL set usage: 

  sol set <parameter> <value> [channel] [noguard]


SOL set parameters and values: 

  set-in-progress             set-complete | set-in-progress | commit-write
  enabled                     true | false
  force-encryption            true | false
  force-authentication        true | false
  privilege-level             user | operator | admin | oem
  character-accumulate-level  <in 5 ms increments>
  character-send-threshold    N
  retry-count                 N
  retry-interval              <in 10 ms increments>
  non-volatile-bit-rate       serial | 9.6 | 19.2 | 38.4 | 57.6 | 115.2
  volatile-bit-rate           serial | 9.6 | 19.2 | 38.4 | 57.6 | 115.2

所以看起来好像可以手动将其设置为完成 - 但就这么简单吗?这些命令的作用是否有参考手册?

4

1 回答 1

2

以下是 IPMI 规范中的 [Set In Progress] 的描述。

此参数用于指示以下任何参数何时更新,以及更新何时完成。该位主要用于警告软件,而不是其他一些软件或实用程序正在对数据进行更改。

实现还可以选择提供“回滚”功能,该功能使用此信息来决定是“回滚”到先前的配置信息,还是接受配置更改。

如果使用,回滚应将所有参数恢复到其先前状态。否则,更改将在写入发生时生效。


如果您的 BMC 支持此功能,设置顺序如下:

ipmitool sol set set-in-progress set-in-progress
ipmitool sol set xxxx
ipmitool sol set set-in-progress commit-write
ipmitool sol set set-in-progress set-complete

IPMI 规范:https ://www.intel.com/content/www/us/en/servers/ipmi/ipmi-second-gen-interface-spec-v2-rev1-1.html

于 2019-06-26T15:45:19.847 回答