![]() | This article has an unclear citation style.(November 2013) |
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.
"Verify mode" refers to having an ability to determine whether a node is conformant with a guarantee of not modifying it, and typically involves the exclusive use of an internal language supporting read-only mode for all potentially system-modifying operations. "Mutual auth" refers to the client verifying the server and vice versa.
"Agent" describes whether additional software daemons are required. Depending on the management software these agents are usually deployed on the target system or on one or many central "controller" servers. Although "Agent-less" = "No" is colored red and might seem to be a negative, in fact having an agent can be considered quite advantageous to many. Consider the impact if an agent-less tool loses connectivity to a node while making critical changes—leaving the node in an indeterminate state that compromises its (production?) functionality.
Language | License | Mutual auth | Encryption | Verify mode | Agent-less | Has a GUI | First release | Latest stable release | |
---|---|---|---|---|---|---|---|---|---|
Ansible | Python | GPLv3+ | Yes [lower-alpha 1] | Yes [lower-alpha 2] | Yes | Yes | Yes [1] | 2012-03-08 | 2022-04-05 5.6.0 [2] |
Bcfg2 | Python | BSD 2-clause [3] | Yes [lower-alpha 3] | Yes [lower-alpha 4] | Yes [lower-alpha 5] | No | Yes [4] | 2004-08-11 [5] | 2015-06-11 1.3.6 [5] |
Capistrano | Ruby | MIT License | Yes [lower-alpha 2] | Yes [lower-alpha 2] | No | 2005 | 2022-08-07 3.17.1 | ||
cdist | Python | GPLv3+ | Yes [lower-alpha 1] | Yes [lower-alpha 2] | Yes | 2010 | 2021-08-24 6.9.8 [6] | ||
Chef | Ruby, Erlang | Apache 2.0 | Yes [lower-alpha 6] | Yes [lower-alpha 7] | Yes [lower-alpha 8] [7] | No | Yes | 2009-01-15 0.5.0 | 2023-01-05 18.1.0 (client), [8] 15.4.0 (server) [9] |
CFEngine | C [10] | GPLv3 [11] | Yes [lower-alpha 1] | Yes [12] | Yes [13] [14] [15] [16] | No | Yes [17] | 1993 | 3.21.0, [18] 3.18.3, [19] |
ISconf | Python | GPL [20] | Yes [lower-alpha 9] | No [21] | 1998 | 2006-08-13 4.2.8.233 | |||
Juju | Python, Go [22] | Affero General Public License | Yes [lower-alpha 1] | Yes [lower-alpha 4] | No | No | Yes [23] | 2010-09-17 [24] | 2022-10-12 2.9.35 [25] |
Local ConFiGuration system (LCFG) | Perl | GPL | Partial [26] | Partial [27] | No | No | No | 1994 | Weekly Releases |
NOC Project | Python | BSD License 2.0 | Yes [lower-alpha 1] | Yes [lower-alpha 2] | Yes | Yes | Yes | 2012-03-08 | 2015-05-20 15.05.1 [28] |
OCS Inventory NG with GLPI | Perl, PHP, C++ | GPL | No [29] | Yes [lower-alpha 4] | No | 2003 | 2014-07-13 [30] | ||
Open pc server integration (Opsi) | Python, Java | GPL | No | Yes [lower-alpha 4] | No | 2004 | 2013-03-01 4.0.3 | ||
PIKT | C | GPLv2+ [31] | Yes [32] | Yes [33] | No | 1998 [34] | 2007-09-10 1.19.0 | ||
Puppet | Ruby, C++ & Clojure (server-side also Ruby before 4.0 [35] ) | Apache since 2.7.0, GPL before then | Yes [lower-alpha 10] | Yes [lower-alpha 4] | Yes [lower-alpha 11] [36] | No | Yes [37] | 2005-08-30 [38] | 2020-06-03 6.16.0 (client), [39] 2020-06-03 6.12.0 (server) [40] |
Quattor | Perl, Python | Apache 2.0 [41] [42] | Yes [43] | Yes [44] | 2005-04-01 [45] | 2018-07-3 18.6.0 [46] | |||
Radmind | C | BSD [47] | Yes [48] | Yes [49] | No | 2002-03-26 [50] | 2008-10-08 1.13.0 [51] | ||
Rex | Perl | Apache | Yes [lower-alpha 1] | Yes [lower-alpha 2] | Yes | 2010-11-05 0.9.0 [52] | 2021-07-05 1.13.4 [53] | ||
Rudder | C, Scala and Rust | GPLv3 and Apache 2.0 [54] | Yes [lower-alpha 1] | Yes [lower-alpha 4] | Yes [lower-alpha 12] [55] | No | Yes | 2011-10-31 | 2020-10-28 5.0.20 [56] |
SmartFrog | Java | Apache 2.0 [57] | Yes [58] | Yes [58] | No | 2004-02-11 | 2012-03-13 3.18.016 [59] | ||
Salt [60] | Python [61] | Apache 2.0 [62] | Yes [63] | Yes [63] | Yes | Both [64] [65] | Yes [66] [67] | 2011-03-17 0.6.0 [68] | 2022-03-28 v3004.1 [69] |
Spacewalk | Java (C, Perl, Python, PL/SQL) | GPLv2 | Yes | Yes | No | 2008-06 [70] | 2019-01-14 2.9 [71] | ||
STAF | C++ | CPL [72] | No [lower-alpha 13] [lower-alpha 14] | Partial [73] | No | 1998-02-16 [74] | 2012-12-16 3.4.16 [75] | ||
Synctool [76] | Python [77] | GPLv2 [78] | Yes [lower-alpha 15] | Yes [lower-alpha 2] | Yes [lower-alpha 16] | Yes [79] | 2003 [80] | 2019-08-11 6.3 [81] | |
Uyuni | Java, Python, PL/SQL (Perl) | GPLv2/Apache 2.0 | Yes | Yes | Yes | Both | Yes | 2018-06 [82] | 2022-05-10 2022.05 [83] |
Language | License | Mutual auth | Encrypts | Verify mode | Agent-less | Have a GUI | First release | Latest stable release |
Note: This means platforms on which a recent version of the tool has actually been used successfully, not platforms where it should theoretically work since it is written in good portable C/C++ or an interpreted language. It should also be listed as a supported platform on the project's web site.
AIX | *BSD | HP-UX | Linux | OS X | Solaris | Windows | Others | |
---|---|---|---|---|---|---|---|---|
Ansible | Yes | Yes | Yes | Yes | Yes | Yes | Yes (Need linux control machine) | Yes [84] |
Bcfg2 | Partial [lower-alpha 17] | Yes [lower-alpha 18] | No | Yes [lower-alpha 19] | Partial [lower-alpha 20] | Yes | No | No |
CFEngine | Yes | Yes [lower-alpha 18] | Yes | Yes | Yes | Yes | Yes (Enterprise version only) | Yes [lower-alpha 21] |
cdist | Yes | Yes | Yes | No | ||||
Chef | Yes [85] | Yes | Yes | Yes | Yes | Yes | Yes [86] | Yes |
ISconf | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
Juju | Yes | Yes [87] | ||||||
Local ConFiGuration system (LCFG) | No | No | No | Partial [lower-alpha 22] | Partial [lower-alpha 23] | Partial [lower-alpha 24] | No | No |
OCS Inventory NG | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
Open pc server integration (Opsi) | No | No | No | Yes | No | No | Yes | No |
PIKT | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes [lower-alpha 25] |
Puppet | Yes | Yes | Yes | Yes | Yes | Yes | Yes [88] | Yes |
Quattor | No | No | No | Yes | Partial [89] | Yes | No | No |
Radmind | Yes | Yes [lower-alpha 18] [lower-alpha 26] [lower-alpha 27] | No | Yes | Yes | Yes | Yes | No |
Rex | Yes | Yes | Yes [90] | Yes | Yes [90] | No | ||
Rudder | Yes | Partial [lower-alpha 28] | No | Yes | Partial [lower-alpha 28] | Partial [91] | Yes | Yes [lower-alpha 29] |
SmartFrog | No [lower-alpha 30] | No [lower-alpha 30] | Yes | Yes | Yes | Yes | Yes | No [lower-alpha 30] |
Salt | Yes | Yes | Partial [lower-alpha 31] | Yes [92] | Yes | Yes [93] | Yes | Partial [lower-alpha 31] |
Spacewalk | No [94] | No | No | Yes [95] | No | No [96] | No | No |
STAF | Yes [lower-alpha 32] | Yes [lower-alpha 33] | Yes [lower-alpha 34] | Yes [lower-alpha 35] | Yes [97] | Yes [lower-alpha 36] | Yes [lower-alpha 37] | Yes [lower-alpha 38] |
Synctool | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes [lower-alpha 39] |
Uyuni | No | No | No | Yes | No | No | No | No |
AIX | *BSD | HP-UX | Linux | OS X | Solaris | Windows | Others |
Not all tools have the same goal and the same feature set. To help distinguish between all of these software packages, here is a short description of each one.
An email client, email reader or, more formally, message user agent (MUA) or mail user agent is a computer program used to access and manage a user's email.
OpenSSL is a software library for applications that provide secure communications over computer networks against eavesdropping or need to identify the party at the other end. It is widely used by Internet servers, including the majority of HTTPS websites.
OpenVPN is a virtual private network (VPN) system that implements techniques to create secure point-to-point or site-to-site connections in routed or bridged configurations and remote access facilities. It implements both client and server applications.
CFEngine is an open-source configuration management system, written by Mark Burgess. Its primary function is to provide automated configuration and maintenance of large-scale computer systems, including the unified management of servers, desktops, consumer and industrial devices, embedded networked devices, mobile smartphones, and tablet computers.
NX technology, commonly known as NX or NoMachine, is a proprietary cross-platform software application for remote access, desktop sharing, virtual desktop and file transfer between computers. It is developed by the Luxembourg-based company NoMachine.
Capistrano is an open-source tool for running scripts on multiple servers; its main use is deploying web applications. It automates the process of making a new version of an application available on one or more web servers, including supporting tasks such as changing databases.
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.
Conserver is a serial console management system that provides remote access to system consoles and logs to a central (master) host. It supports both local and network serial connections and allows replay of the server console history even if the server is down. Multiple users can connect to a single serial connection, with one having write-access.
Puppet is a software configuration management tool which includes its own declarative language to describe system configuration. It is a model-driven solution that requires limited programming knowledge to use.
Spacewalk is open-source systems management software for system provisioning, patching and configuration licensed under the GNU GPLv2.
Progress Chef is a configuration management tool written in Ruby and Erlang. It uses a pure-Ruby, domain-specific language (DSL) for writing system configuration "recipes". Chef is used to streamline the task of configuring and maintaining a company's servers, and can integrate with cloud-based platforms such as Amazon EC2, Google Cloud Platform, Oracle Cloud, OpenStack, IBM Cloud, Microsoft Azure, and Rackspace to automatically provision and configure new machines. Chef contains solutions for both small and large scale systems.
Augeas is a free software configuration-management library, written in the C programming language. It is licensed under the terms of the GNU Lesser General Public License.
Salt is a Python-based, open-source software for event-driven IT automation, remote task execution, and configuration management. Supporting the "infrastructure as code" approach to data center system and network deployment and management, configuration automation, SecOps orchestration, vulnerability remediation, and hybrid cloud control.
Ansible is a suite of software tools that enables infrastructure as code. It is open-source and the suite includes software provisioning, configuration management, and application deployment functionality.
Rudder is an open source audit and configuration management utility to help automate system configuration across large IT infrastructures. Rudder relies on a lightweight local agent installed on each managed machine.
Continuous configuration automation (CCA) is the methodology or process of automating the deployment and configuration of settings and software for both physical and virtual data center equipment.
Teleport is an open-source tool for providing zero trust access to servers and cloud applications using SSH, Kubernetes and HTTPS. It can eliminate the need for VPNs by providing a single gateway to access computing infrastructure via SSH, Kubernetes clusters, and cloud applications via a built-in proxy.
{{cite web}}
: CS1 maint: archived copy as title (link)