feat: switch the server's power over IPMI (0.3.0)
IpmiDriver.set_power_state sends an IPMI chassis control: On, GracefulShutdown, ForceOff and ForceRestart. get_power_state now offers what fits the server's state: On when it is off, the other three when it is on. IPMI has no graceful restart and pyghmi offers no power cycle, so neither is offered. The driver still does not reset the BMC. For boards that offer nothing but IPMI, such as a Supermicro X10 without a Redfish license.
This commit is contained in:
1 parent
0e38e18e26
commit
6c60f7ac60
8 files changed
+137
-25
No files matched your search
+6
-3
@@ -39,6 +39,9 @@ must follow the collections instead of assuming IDs, because vendors differ (Del
|
||||
|
||||
## IPMI fallback (`ipmi` entry point)
|
||||
|
||||
Read-only, via `pyghmi`: device ID and FRU data for `get_facts`, sensor data repository for
|
||||
`get_environment`, chassis status for `get_power_state`, SEL for `get_event_log`. No power
|
||||
control over IPMI.
|
||||
Via `pyghmi`: device ID and FRU data for `get_facts`, sensor data repository for
|
||||
`get_environment`, chassis status for `get_power_state`, SEL for `get_event_log`.
|
||||
`set_power_state` sends a chassis control (`On` → power up, `GracefulShutdown` → soft off
|
||||
via ACPI, `ForceOff` → power down, `ForceRestart` → hard reset). IPMI has no graceful
|
||||
restart, and pyghmi offers no power cycle, so `get_power_state` never offers those two.
|
||||
No BMC reset over IPMI.
|
||||
+4
-2
@@ -19,7 +19,9 @@ credentials are worth as much as root on every machine it manages.
|
||||
offline. This is part of the protocol, not a bug a firmware update fixes.
|
||||
- Cipher suite 0 (no authentication) is enabled on some BMCs and allows login with any
|
||||
password.
|
||||
- So the `ipmi` entry point is read-only and a fallback only. `get_management_protocols`
|
||||
- So the `ipmi` entry point is a fallback only. It switches the server's power, because
|
||||
some boards (a Supermicro X10 without a Redfish license) offer nothing else, but it does
|
||||
not reset the BMC. `get_management_protocols`
|
||||
reporting `IPMI.ProtocolEnabled = true` should become a finding in netOrk, with the advice
|
||||
to disable IPMI over LAN where Redfish is available.
|
||||
|
||||
@@ -28,7 +30,7 @@ credentials are worth as much as root on every machine it manages.
|
||||
- `set_power_state` can take a production server down. In netOrk it needs a
|
||||
`ConfirmDialog`, a permission of its own, and an audit log entry.
|
||||
- `ForceOff`/`ForceRestart`/`PowerCycle` skip the OS shutdown; offer `GracefulShutdown`/
|
||||
`GracefulRestart` first.
|
||||
`GracefulRestart` first. Over IPMI there is no graceful restart, and no power cycle.
|
||||
- `reboot_host` restarts only the BMC (`Manager.Reset`). The managed server keeps running.
|
||||
|
||||
## Firmware
|
||||
|
||||
Reference in new issue
Block a user