Skip to content
CFEngine Community https://cfengine.com/community/
C Shell Yacc Emacs Lisp Perl C++ Other
Find file
Latest commit 72ecf11 @kacf kacf Merge pull request #2487 from kacf/strictify_namespace
Namespaces allow some special characters which allows creation of
Failed to load latest commit information.
3rdparty/peg-0.1.13 Fix typos found by codespell
cf-agent Merge pull request #2484 from kacf/override-workdir
cf-execd Redmine #7191: Allow multiple -D and -N flags to binaries
cf-key Add '-n' flag to cf-key to avoid host name lookups.
cf-monitord Redmine #7606 Improve TTY detection
cf-promises cf-promises/cf-promises.c: teach --show-vars to print JSON vars
cf-runagent Redmine#7581: Implement cf-runagent --remote-bundles and cf-serverd "…
cf-serverd Redmine#7856: namespaces can now be passed to cf-runagent -D and --re…
cf-upgrade cf-upgrade: Fix out of tree builds
contrib Change: Refactor
docs Include the template files for extensions_template.[ch] in the source…
examples Merge pull request #2434 from nickanderson/cleanup_example_reports_wh…
ext misc: Fix typos found by codespell
libcfnet Redmine #7908: Check for empty server response in RemoteDirList after…
libcompat Disable block buffering on stdout on Windows.
libenv get rid of 'internal soft-class' name, which is a bit confusing
libpromises Namespaces allow some special characters which allows creation of
libutils Merge pull request #2482 from kacf/avoid_dropping_privileges
m4 Redmine #7808: Do not drop privileges when changes permissions on non…
misc Changelog generator fix: Allow trailing dots after Changelog directive.
tests Namespaces allow some special characters which allows creation of
.gitignore obliterate CFWORKDIR (GLOBAL_C) and its usage in the main codebase.
.mailmap Coalesce Chris Dituri's author names in .mailmap
AUTHORS Fix typos found by codespell
BSDmakefile Add missing copyright blurbs
ChangeLog Remove duplicate entry from the 3.8 ChangeLog
GLOBALS GLOBALS: how to suppress mutability in CFEngine internals.
HACKING.md Clarify that changelog entries are not needed for everything.
INSTALL Fix typos found by codespell
LICENSE Fix typos found by codespell
Makefile.am Reintroduce circular dependency workaround. Partial revert of 29cb917
README.md Clarify that files by default are GPLv3.
autogen.sh Fix POSIX shell detection on Solaris.
checkglobals.sh Add missing copyright blurbs
configure.ac Redmine #7030: No longer hang when changing permissions/ownership on …
configure_flags.env.in Export core version in configure_flags so we can check it downstream.
create_tarball.sh Add missing copyright blurbs
splint-check.sh Add missing copyright blurbs

README.md

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

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.

Something went wrong with that request. Please try again.