Plugins

Plugins are the source of all logic used in building a config. They can perform one of several tasks:

  1. Generating configuration inventory lists for clients
  2. Generating configuration entry contents for clients
  3. Probing client-side state (like hardware inventory, etc) -- the generic client probing mechanism is described here?.
  4. Automating administrative tasks (SSHbase automates ssh key management)
  5. Generating client per-entry installation decision-lists

Enabling Plugins

In order for the bcfg2 server to use a plugin, it needs to be listed in bcfg2.conf. If a plugin should be used to build configuration inventory lists, it should be added to the structures line. If a plugin should be used in generating configuration entry contents for clients, it should be listed as a generator. A single plugin can be listed in multiple categories.

Default Plugins

The Bcfg2 repository has the default plugin list currently distributed with Bcfg2: https://trac.mcs.anl.gov/projects/bcfg2/browser/trunk/bcfg2/src/lib/Server/Plugins.

All Plugins

Metadata (Grouping)

Each of these plugins has a corresponding subdirectory with the same name in the Bcfg2 repository.

Abstract Configuration (Structures)

Each of these plugins has a corresponding subdirectory with the same name in the Bcfg2 repository.

Literal Configuration (Generators)

Each of these plugins has a corresponding subdirectory with the same name in the Bcfg2 repository.

Statistics Plugins

DBStats can be enabled by adding the following line to /etc/bcfg2.conf:

plugins = DBStats

Version Plugins

Plugin Roles (in 1.0)

In version 1.0, plugins have been refactored into a series of roles. This are fine-grained plugin capabilities that govern how the server core interacts with plugins.

More details can be found in bcfg2/trunk/doc/plugin-roles (testing: Roles?)