Brussels / 2 & 3 February 2019

schedule

bmclib: A Baseboard Management Controller library

One library to rule them all?


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.

Speakers

Photo of Joel Rebello Joel Rebello
Photo of Juliano Martinez Juliano Martinez

Attachments

Links