Bcfg2
Encyclopedia
Bcfg2 is a configuration management
tool developed in the Mathematics and Computer Science Division of Argonne National Laboratory
. 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 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
XML
model. The entire specification can be validated using widely available XML schema validators along with the custom schemas included in Bcfg2.
Bcfg2 is licensed under a BSD License. Built to be cross-platform
, it works on most Linux
and Unix
based operating systems (including OS X).
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.
Example of abstract configuration entries
Example of literal configuration entries
Configuration management
Configuration management is a field of management that focuses on establishing and maintaining consistency of a system or product's performance and its functional and physical attributes with its requirements, design, and operational information throughout its life.For information assurance, CM...
tool developed in the Mathematics and Computer Science Division of Argonne National Laboratory
Argonne National Laboratory
Argonne National Laboratory is the first science and engineering research national laboratory in the United States, receiving this designation on July 1, 1946. It is the largest national laboratory by size and scope in the Midwest...
. 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 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 programming
In computer science, declarative programming is a programming paradigm that expresses the logic of a computation without describing its control flow. Many languages applying this style attempt to minimize or eliminate side effects by describing what the program should accomplish, rather than...
XML
XML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....
model. The entire specification can be validated using widely available XML schema validators along with the custom schemas included in Bcfg2.
Bcfg2 is licensed under a BSD License. Built to be cross-platform
Cross-platform
In computing, cross-platform, or multi-platform, is an attribute conferred to computer software or computing methods and concepts that are implemented and inter-operate on multiple computer platforms...
, it works on most Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
and Unix
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...
based operating systems (including OS X).
Bcfg2 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 local process 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.Detailed 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.Example of abstract configuration entries
Example of literal configuration entries
External links
- Bcfg2's web site
- Bcfg2 user documentation
- Configuration Management with Bcfg2 (ISBN 9781931971645)