Bcfg2
   HOME

TheInfoList



OR:

Bcfg2 (pronounced "bee-config") is a
configuration management Configuration management (CM) is a management process for establishing and maintaining consistency of a product's performance, functional, and physical attributes with its requirements, design, and operational information throughout its life. ...
tool developed in the Mathematics and Computer Science Division of
Argonne National Laboratory Argonne National Laboratory is a Federally funded research and development centers, federally funded research and development center in Lemont, Illinois, Lemont, Illinois, United States. Founded in 1946, the laboratory is owned by the United Sta ...
. Bcfg2 aids in the infrastructure management lifecycle – configuration analysis, service deployment, and configuration auditing. It includes tools for visualizing configuration information, as well as reporting tools that help administrators understand configuration patterns in their environments. Bcfg2 differs from similar configuration management tools due to its auditing capability. One of the stated design goals for Bcfg2 is to determine if interactive (direct) changes have been made to a machine and report on these extra changes. The client can optionally remove any additional configuration.


Overview

Bcfg2 is written in Python and enables system administrator to manage the configuration of a large number of computers using a central configuration model. Bcfg2 operates using a simple model of system configuration, modeling intuitive items like packages, services and configuration files (as well as the dependencies between them). This model of system configuration is used for verification and validation, allowing robust auditing of deployed systems. The Bcfg2 configuration specification is written using a
declarative Declarative may refer to: * Declarative learning, acquiring information that one can speak about * Declarative memory, one of two types of long term human memory * Declarative programming, a computer programming paradigm * Declarative sentence, a t ...
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
model. The entire specification can be validated using widely available XML schema validators along with the custom schemas included in Bcfg2. Built to be
cross-platform Within computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several Computing platform, computing platforms. Some ...
, Bcfg2 works on most
Unix-like A Unix-like (sometimes referred to as UN*X, *nix or *NIX) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Uni ...
operating systems.


Architecture

Bcfg2 is based on a client-server architecture. The client is responsible for interpreting (but not processing) the configuration served by the server. This configuration is literal, so no client-side processing of the configuration is required. After completion of the configuration process, the client uploads a set of statistics to the server.


The Bcfg2 Client

The Bcfg2 client performs all client configuration or reconfiguration operations. It renders a declarative configuration specification, provided by the Bcfg2 server, into a set of configuration operations which will attempt to change the client's state into that described by the configuration specification. The operation of the Bcfg2 client is intended to be as simple as possible. Conceptually, the sole purpose of the client is to reconcile the differences between the current client state and the state described in the specification received from the Bcfg2 server.


The Bcfg2 Server

The Bcfg2 server is responsible for taking a network description and turning it into a series of configuration specifications for particular clients. It also manages probed data and tracks statistics for clients.


Server operation

The Bcfg2 server takes information from two sources when generating client configuration specifications. The first is a pool of metadata that describes clients as members of an aspect-based classing system. That is, clients are defined in terms of aspects of their ''abstract'' behavior. The other is a file system repository that contains mappings from metadata to ''literal'' configuration. These are combined to form the literal configuration specifications for clients. An example of abstract configuration entries: An example of literal configuration entries: Hello from Bcfg2


See also

*
Comparison of open source configuration management software This is a comparison of notable free and open-source configuration management software, suitable for tasks like server configuration, orchestration and infrastructure as code typically performed by a system administrator. Basic properties ...
*
Puppet A puppet is an object, often resembling a human, animal or Legendary creature, mythical figure, that is animated or manipulated by a person called a puppeteer. Puppetry is an ancient form of theatre which dates back to the 5th century BC in anci ...
* OpenLMI


References


Further reading

*


External links

* {{Official website, http://bcfg2.org/ Configuration management Linux configuration utilities MacOS Linux package management-related software Unix package management-related software Software using the BSD license