Code Quality Rank: L2
Programming language: C
License: GNU General Public License v3.0 or later
Tags: Configuration Management    
Latest version: v3.15.2

CFEngine alternatives and similar tools

Based on the "Configuration Management" category.
Alternatively, view CFEngine alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of CFEngine or a related project?

Add another 'Configuration Management' Tool


Gitter chat

Language grade: C

CFEngine 3

CFEngine 3 is a popular open source configuration management system. Its primary function is to provide automated configuration and maintenance of large-scale computer systems.

Source code repositories

CFEngine is comprised of several source code repositories. As you might be looking for another part of the open source code base, here is a list to ease navigation:

  • core (This repo) - The C source code for core components, like cf-agent and cf-serverd.
    • libntech (submodule in core) - Library of reusable C code, such as data structures, string manipulation, JSON parsing, file handling, etc.
    • core/contrib (subdirectory in core) - User-contributed tools and scripts
  • masterfiles - The Masterfiles Policy Framework (MPF) contains the default policy (.cf) files
  • documentation - Documentation on how CFEngine components work, the policy language, the enterprise features, etc.
  • cf-remote - Tooling to make deploying / testing CFEngine across many remote instances easy
  • buildscripts - Scripts and files needed to build installer packages across a wide variety of supported platforms

(Each repo also contains some supporting code/files, such as tests, scripts, documentation, etc.).


Pre-built installers are available from our website:

To install from source please see the INSTALL file for prerequisites and build instructions.


As per the LICENSE file, CFEngine Community is licensed under the GNU General Public License, version 3.

All the files in this repository are licensed under GNU GPL version 3, unless stated otherwise in the copyright notice inside the particular file.

Example Usage

Hello World

The following code demonstrates simple CFEngine output through a reports promise.

body common control
  bundlesequence => { "run" };

bundle agent run
      "Hello, world";

The following policy code may be executed with cf-agent (the main CFEngine binary) as follows.

$ cf-agent/cf-agent hello.cf
R: Hello, world


Please see the CONTRIBUTING.md file.

Relationship to CFEngine 2

CFEngine 3 is not a drop-in upgrade for CFEngine 2 installations. It is a significantly more powerful version, but it is incompatible with the CFEngine 2 policy language.

The server part of CFEngine 3 supports the network protocol of CFEngine 2, so you may upgrade your installation gradually.


CFEngine was originally created by Mark Burgess with many contributions from around the world. Thanks everyone!

CFEngine is sponsored by Northern.tech AS

*Note that all licence references and agreements mentioned in the CFEngine README section above are relevant to that project's source code only.