CFEngine Community
Switch branches/tags
Clone or download
olehermanse Merge pull request #3418 from olehermanse/sudoless
Travis: Removed sudo from unit test jobs
Latest commit b662c46 Nov 14, 2018
Permalink
Failed to load latest commit information.
3rdparty/peg-0.1.13 Fix typos found by codespell Jan 2, 2015
cf-agent Made SetJoin and StringSetJoin optionally copy elements Oct 24, 2018
cf-check LMDB database dumper, lmdump, no longer creates empty databases Nov 9, 2018
cf-execd Reload persistent classes on config reload in cf-execd and cf-serverd Oct 30, 2018
cf-key ENT-3756: refactor use of atexit to use custom cleanup function inste… Oct 15, 2018
cf-monitord Merge pull request #3352 from olehermanse/fixmes Oct 18, 2018
cf-net Fix memory leak in cf-agent (stat_cache) Oct 30, 2018
cf-promises Made SetJoin and StringSetJoin optionally copy elements Oct 24, 2018
cf-runagent ENT-3756: refactor use of atexit to use custom cleanup function inste… Oct 15, 2018
cf-serverd Make TLS 1.3 an optional requirement Nov 12, 2018
cf-testd cleanup and fixup, squashme Oct 15, 2018
cf-upgrade Fixed small memory leak in cf-upgrade Nov 9, 2018
contrib Merge pull request #3299 from Lex-2008/ENT-4023-DC-VCS-scripts Nov 1, 2018
docs Update copyright notice to 2018 Feb 9, 2018
examples Added example for string_replace Aug 13, 2018
ext Update copyright notice to 2018 Feb 9, 2018
libcfnet Add 'feature' hard classes for supported TLS versions Nov 12, 2018
libcompat Added serialization functions for sequence of strings Oct 19, 2018
libenv Added a new binary: cf-check Oct 23, 2018
libpromises Add 'feature' hard classes for supported TLS versions Nov 12, 2018
libutils Merge pull request #3404 from olehermanse/leaks Nov 6, 2018
m4 Update copyright notice to 2018 Feb 9, 2018
misc Removed double import of subprocess in determine-version.py Aug 28, 2018
tests Travis: Test with LMDB instead of Tokyo Cabinet Nov 13, 2018
travis-scripts Travis: Removed old flags in valgrind test, needed in Ubuntu 14 Nov 13, 2018
.clang-format Added clang-format config Mar 23, 2018
.gitignore Added a new binary: cf-check Oct 23, 2018
.mailmap Added Craig, Ole, and Vratislav to AUTHORS Oct 30, 2018
.travis.yml Travis: Removed sudo from unit test jobs Nov 13, 2018
AUTHORS Added Craig, Ole, and Vratislav to AUTHORS Oct 30, 2018
BSDmakefile Update copyright notice to 2018 Feb 9, 2018
ChangeLog Add 3.12.0 beta changelog May 7, 2018
GLOBALS GLOBALS: how to suppress mutability in CFEngine internals. Jul 25, 2014
HACKING.md wip Oct 16, 2018
INSTALL Update URL for help-cfengine mailing list. Feb 2, 2018
LICENSE change CFEngine AS to Northern.tech AS in a few more places Aug 1, 2018
Makefile.am Added a new binary: cf-check Oct 23, 2018
README.md Update README.md Sep 3, 2018
autogen.sh Update copyright notice to 2018 Feb 9, 2018
checkglobals.sh Update copyright notice to 2018 Feb 9, 2018
codecov.yaml Disable codecov comments Oct 15, 2018
configure.ac Add 'feature' hard classes for supported TLS versions Nov 12, 2018
configure_flags.env.in Export core version in configure_flags so we can check it downstream. Mar 17, 2015
create_tarball.sh Update copyright notice to 2018 Feb 9, 2018
splint-check.sh Update splint script. Jun 2, 2017

README.md

Version Core MPF
master Core Build Status MPF Build Status
3.12.x LTS Core Build Status MPF Build Status
3.10.x LTS Core Build Status MPF Build Status
3.7.x LTS Core Build Status MPF Build Status

codecov 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.

Installation

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

License

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
{
  reports:
    cfengine::
      "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

Contributing

Please see the HACKING.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.