bmc-toolbox

Vendor agnostic Baseboard Management Controller toolset



About

BMCs are a fundamental component of datacenter bare metal assets like servers and chassis,

The bmc-toolbox leverages the Baseboard Management Controller to help manage the lifecycle of datacenter bare metal assets

It provides tools to inventorize, configure, manage, authenticate/authorize a large fleet of bare metal assets through the BMC.

  • bmclib - A Go lang library that provides a consistent set of methods to interface with BMCs.
  • dora - tool to inventorize a fleet of bare metal servers and chassis assets.
  • bmcbutler - tool to handle configuration management for a fleet of bare metal server and chassis BMCs.
  • actor - A single API webservice endpoint to interact with a fleet of bare metal BMCs.
  • bmcldap - LDAP based authentication/authorization service/proxy for BMCs.
  • bmcfwupd - tool to update the BMC firmware.
Check it out on Github

bmclib

A vendor agnostic Baseboard Management Controller library that exposes methods to perform inventory, management, configuration actions.

Devices supported
  • Dell M1000e
  • Dell iDRAC8 (M630)
  • Dell iDRAC9 (M640)
  • Dell c7000
  • HPE iLO4 (Gen8, Gen8)
  • HPE iLO5 (Gen10)
  • Supermicro X10
  • Supermicro X11
  • Device not listed? get in touch, we’d be happy to help add support :)
Devices Work In Progress
  • Intel S2600WF0
  • Quanta QuantaGrid D52BM-2U
  • Work is underway to add Redfish support using the Gofish library
Check it out on Github

Status Go Report Card GoDoc

The figure describes various bmc-toolbox tools that currently use bmclib to interact with BMCs.

Dora

Dora the bare metal asset discovery service periodically scans network subnets for server/chassis assets,
and collects data from discovered assets, these are then listed in its DB and kept updated.

Dora acts as a dynamic inventory for bare metal assets, the data is exposed via a JSON API interface.

Check it out on Github

The figure describes the type of data Dora collects

bmcbutler

Bmcbutler is a BMC configuration management tool, its also capable of managing certificates for BMCs.

Check it out on Github

Status Go Report Card

The figure describes bmcbutler handling configuration management for BMCs.

Actor

Actor abstracts away various management actions to BMCs (Baseboard Management Controllers), and exposes them through a consistent API.

Check it out on Github

Go Report Card

The figure describes how actor helps trigger actions on BMCs

Redfish

What about Redfish?

Redfish is a standard defined by the DMTF, hardware vendors are then expected to implement these standards,
on thier BMCs, however the problems we faced when dealing with a large fleet were,

  • Vendors are quite slow at implementing and keeping up with the released standards
  • Some of the implementations are just incorrect or not functional (we try to report these when we find them)
  • Not all of the methods exposed by bmclib are currently exposed through Redfish.

Redfish support is currently being added to bmclib through the Gofish library.
The tools in the bmc-toolbox leverage bmclib which helps get around these limitations.

Redfish support as of 09 Sept 2019

BMC type                       BMC firmware      Redfish version
========                       ============      ===============
idrac8 (M630)                   v2.60.60.60        Unsupported
idrac9 (M640)                   v3.34.34.34        v1.4.0
ilo4   (Gen8, Gen9)             v2.70              v1.0.0
ilo5   (Gen10)                  v1.6.0             v1.6.0
Supermicro (X10DRFF-CTG)         -                 v1.0.1
QuantaGrid (D42A-2U)             -                 v1.1.0
Intel      (S2600WF0)            -                 v1.1.0