Comparison of open source configuration management software
From Wikipedia, the free encyclopedia
This is a comparison of free (libre) and open source configuration management software.
[edit] Basic properties
Programming language | Software license | First public release date | Latest stable version | |
---|---|---|---|---|
Arusha Project (ARK) | Python | BSD | July 21, 2001 [1] | 20050419 (April 19, 2005) |
Bcfg2 | Python | 2-clause BSD-style | August 11, 2004 [2] | 0.9.2 (February 19, 2007) |
Cfengine | C | GPL + parts in The Frontier Artistic Licence v.1.0 | 1993 | 2.1.22 (January 27, 2007) |
ISconf | Python | GPL [3] | 1998 | 4.2.8.222 (August 13, 2006) |
LCFG | Perl | GPL | 1994 | 2007021901c (February 19, 2007) |
PCfengine | Python | GPL [4] | No public release yet | No public release yet |
PIKT | C | GPL [5] | 1998 [6] | 1.18.2 (November 5, 2006) |
Puppet | Ruby | GPL | August 30, 2005 [7] | 0.22.1 (February 1, 2007) |
Quattor | Perl | Open Source EU Data Grid software license | 1.0 on April 1st, 2005 [8] | 1.2 (February 7, 2007) |
Radmind | C | BSD-Style license | March 26, 2002 | 1.7.1 (November 29, 2006) |
SmartFrog | Java | LGPL | 1.02.000 (February 11, 2004) | 3.10.016 (November 13, 2006) |
[edit] Short descriptions
Not all tools have the same goal and the same feature set. To help distinguish between all of these software, here is an objective short description of each one.
- Arusha Project (ARK)
- Manage package and configuration specification of hosts via a custom XML description language. Can be used as a frontend for Cfengine or PIKT. Provides some collaboration features between administration 'teams'. The last commit dates from March 2007.
- Bcfg2
- Software to manage the configuration of a large number of computers using a central configuration model and the client-server paradigm. Compared to Cfengine, the system enables reconciliation between clients' state and the central configuration specification. Detailed reports provide a way to identify unmanaged configuration on hosts. Generators enable code or template based generation of configuration files from a central data repository.
- Cfengine
- The veteran of open source configuration management software. Manages configuration of a large number of computers using the client-server paradigm. The server has the authoritative version of configuration: any client state which is different from the server is always reverted to the authoritative version. Configuration state is specified via a declarative language. Many sites are reported running thousands of Cfengine instances.
- ISconf
- Tool to execute commands and replicate files on all nodes. Unlike ClusterSSH, the nodes need not to be up; the commands will be executed when they boot. The system has no central server so commands can be launched from any node and they will replicate to all nodes.
- LCFG
- LCFG manage the configuration with a central description language in XML, specifying resources, aspects and profiles. Configuration is deployed using the client-server paradigm. Appropriate scripts on clients (called "components") transcribe the resources into configuration files and restart services as needed. Binaries are available for Red Hat Linux only.
- PCfengine
- This tool aim to be a better Cfengine written in Python. It uses Python directly as a language to describe configuration files. In contrast to Cfengine, it determines automatically the order in which actions are applied in the client.
- PIKT
- PIKT is foremost a monitoring system that also does configuration management. "PIKT consists of a sophisticated, feature-rich file preprocessor; an innovative scripting language with unique labor-saving features; a flexible, centrally directed process scheduler; a customizing file installer; a collection of powerful command-line extensions; and other useful tools." [9]
- Puppet
- Puppet consists of a custom declarative language to describe system configuration, distributed using the client-server paradigm (using XML-RPC protocol), and a library to realize the configuration. The resource abstraction layer enable administrators to describe the configuration in higher-level terms than in Cfengine, such as users, services or filesystems.
- Quattor
- "The quattor information model is based on the distinction between the desired state and the actual state. The desired state is registered in a fabric-wide Configuration Database (CDB), using a specially designed configuration language for expressing and validating configurations, composed out of reusable hierarchical building blocks called templates. Configurations are propagated to and cached on the managed nodes." [10]
- Radmind
- Radmind manages hosts configuration at the file system level. In a similar way to Tripwire (and other configuration management tools), it can detect external changes to managed configuration, and can optionally reverse the changes. Radmind does not have the higher-level configuration abstraction that tools such as BCFG2 and Puppet exhibit. A graphical interface is available (only) for Mac OS X.
- SmartFrog
- Java-based tool to deploy and configure applications distributed across multiple machines. There is no central server; you can deploy a .SF configuration file to any node and have it distributed to peer nodes according to the distribution information contained inside the deployment descriptor itself.