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

"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 authentication 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, instead, 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 function.

LanguageLicenseMutual auth.EncryptionVerify modeAgent-less GUIFirst releaseLatest stable release
AnsiblePythonGPLv3+2012-03-082025-03-25 2.18.4
Bcfg2PythonBSD 2-clause2004-08-112015-06-11 1.3.6
CapistranoRubyMIT20052022-08-07 3.17.1
cdistPythonGPLv3+20102021-08-24 6.9.8
ChefRuby, ErlangApache 2.02009-01-15 0.5.02023-01-05 18.1.0, 15.4.0
CFEngineCGPLv31993
2026-01-09 3.27.0,
2025-12-12 3.24.3,
2025-12-12 3.21.8
ConsfiguratorCommon Lisp GPLv3+2024-07-26 1.4.2
GuixScheme GPLv3+2022-12-19 1.4.0
ISconfPythonGPL19982006-08-13 4.2.8.233
JujuPython, GoAGPL2010-09-172025-06-09 3.6.7
Local ConFiGuration system PerlGPL1994Weekly Releases
NOC ProjectPythonBSD 2.02012-03-082015-05-20 15.05.1
OCS Inventory NG with GLPIPerl, PHP, C++GPL20032014-07-13
Open pc server integration Python, JavaGPL20042013-03-01 4.0.3
PIKTCGPLv2+19982007-09-10 1.19.0
PuppetRuby, C++ & Clojure Apache since 2.7.0, GPL before then2005-08-302024-04 8.6.0, 7.30.0, 2024-04 8.6.0, 7.17.0
PyinfraPythonMIT License2016-08-10 0.12025-01-30 3.2
QuattorPerl, PythonApache 2.02005-04-012024-11-22 24.10.0
RadmindCBSD2002-03-262008-10-08 1.13.0
RexPerlApache2010-11-05 0.9.02025-07-05 1.16.1
RudderC, Scala, RustGPLv3, Apache 2.02011-10-312025-11-19 9.0.1
SmartFrogJavaApache 2.02004-02-112012-03-13 3.18.016
SaltPythonApache 2.0Both2011-03-17 0.6.02023-05-05 v3006.1
SpacewalkJava GPLv22008-062019-01-14 2.9
STAFC++CPL1998-02-162012-12-16 3.4.16
SynctoolPythonGPLv220032019-08-11 6.3
UyuniJava, Python, PL/SQL GPLv2, Apache 2.0Both2018-062024-01-31-01 2024.01
LanguageLicenseMutual authEncryptsVerify modeAgent-lessHave a GUIFirst releaseLatest stable release


Platform support

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.

Short descriptions

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.
;Ansible
;Bcfg2
;CFEngine
;cdist
;Chef
;Consfigurator
;Guix
;ISconf
;Juju
;Local Configuration system
;Open PC server integration
;PIKT
;Puppet
;Pyinfra
;Quattor
;Radmind
;Rex
;Salt
;SmartFrog
;Spacewalk
;STAF
;Synctool