BMC access over Redfish
Redfish is the HTTP interface of a server's baseboard management controller. Luna uses it to read what a machine is, to control its power, to carry a BIOS configuration from one machine to another and to update firmware — all out of band: a node that is switched off, has never been installed or has a broken operating system answers the same as a healthy one.
Redfish can only offer what the BMC exposes, and BMCs differ more than the specification
suggests. On some boards the whole tree below the service root answers 403 until a vendor
licence is installed; on others there is no BIOS resource at all. Luna then falls back to IPMI
for power control and reports the rest as unavailable.
Describing how to reach a BMC
Two records describe the access. They are assigned to a group or a node, and a node inherits its
group's unless it names its own — the same way bmcsetup and osimage are assigned.
| Record | Holds | Used for |
|---|---|---|
bmcsetup |
user id, user name, password, channels | the IPMI account Luna creates when a node installs |
redfishsetup |
scheme, port, certificate verification, and its accounts | how to reach Redfish, and who to log in as |
# how to reach the BMC
# luna redfishsetup add datacentre --scheme https --port 443 --verify n
# who to log in as; several accounts with different roles is the point
# luna redfishsetup addaccount datacentre --username monitor --password ... --role ReadOnly
# luna redfishsetup addaccount datacentre --username admin --password ... --role Administrator
# assign it
# luna group change compute -F datacentre
# luna node change node001 -F datacentre # only where a node differs
# who uses it
# luna redfishsetup member datacentre
Luna picks the weakest account carrying the privilege an operation needs:
| Operation | Weakest role that has it |
|---|---|
| inventory, BIOS grab, status | ReadOnly |
| power, next-boot override, BIOS push, firmware | Operator |
| creating or changing accounts on the BMC | Administrator |
A whole-cluster inventory sweep therefore runs as ReadOnly, and an Administrator account
is only used when the work needs one.
No redfishsetup means no Redfish. A node without one assigned is refused, not reached with
the IPMI credentials. Not configuring Redfish is how an administrator says leave this BMC
alone, and it has to mean something.
Creating the accounts on the BMC
The accounts in a redfishsetup are what Luna logs in with; they also have to exist on the
BMC. With --setupredfish set on the group or node, Luna creates or updates them on the BMC
when the node installs, right after the IPMI setup, using the bmcsetup credentials as the
one-time way in. The same can be done on demand:
# luna group change compute --setupredfish y
# luna node setupredfish node001
# luna node setupredfish -g compute
A password that differs on the BMC is brought back to what Luna holds, and the log says so.