This talk is about a library written to help manage a fleet of bare metal servers,
it leverages existing (mostly undocumented) APIs on Baseboard Management Controllers,
and exposes a consistent API interface to,
- Inventorize bare metal hardware
- Manage BMC/BIOS configuration
- Reliably Power cycle/PXE boot bare metal.
- Update firmware on BMCs
https://github.com/bmc-toolbox/bmclib
This talk is about bmclib, a library written to perform asset lifecycle management,
across a fleet of bare metal servers, it leverages existing (mostly undocumented) APIs on Baseboard Management Controllers,
and exposes a consistent API interface to,
- Inventorize bare metal hardware
- Manage BMC/BIOS configuration
- Reliably Power cycle/PXE boot bare metal.
- Update firmware on BMCs
https://github.com/bmc-toolbox/bmclib
While all of the above seems obvious functions of bare metal server hardware that should just work,
in reality they do not - when dealing with ~45k units of bare metal server hardware from various vendors,
this is a lesson we learned and hence we developed bmclib and all of the various tools that is part of the bmc-toolbox.
https://github.com/bmc-toolbox
We intend to talk about the current state of BMCs, the current vendor solutions to have a single API (Redfish)
and the various tools that are part of the bmc-toolbox which were possible thanks to bmclib.
Another interesting project (which we intend to talk about) was to implement a service on top of bmclib to retrieve thumbnails from the BMC,
of the screen of the server and run image classification on it to infer what state a bare metal is currently in,
thanks to bmclib this was easy since we implemented a common method to grab "Screen previews" through the BMC.
The bmc-toolbox is built and maintained in Booking.com.