System configuration with CFEngine

Alternatives | Encryption & Verification | Useful Tips | Mac OS X | OpenBSD | RedHat Linux

This page covers using CFEngine for system configuration. Consult the reference and tutorial documentation included with CFEngine. Other articles:

Additional CFEngine links:

See also the #cfengine channel on the Freenode IRC network.

Alternatives

Consult Infrastructures.Org and The Practice of System and Network Administration for big picture considerations of system configuration. Alternatives to CFEngine include: Bcfg2, isconf, puppet, and radmind.

See also the new comparison of open source configuration management software article on Wikipedia.

Encryption & Verification

CFEngine uses a custom scheme for encryption and verification of connections. Alternatives include running CFEngine over Secure Shell (SSH) (via OpenSSH) or Transport Layer Security (TLS) (via a wrapper like stunnel). SSH or TLS will be eaiser to setup and debug for most administrators, and does not require learning the different CFEngine way to perform the same thing. Ideally, CFEngine should be fixed and use the standard TLS protocol internally.

CFEngine clients pull data from servers. The pull model has various advantages over pushing out updates. Using SSH or TLS, the CFEngine client would connect to a port on the localhost interface, which would then be forwarded encrypted to the CFEngine server.

Another approach: host the policy files on a regular webserver, and require that clients verify a Pretty Good Privacy (PGP) signature before trusting the files.

Useful Tips

Mac OS X

CFEngine on Mac OS X.

OpenBSD

The ports system on OpenBSD 3.5 includes an old version of CFEngine, though version 2 can be built from source against the Berkeley DB package.

RedHat Linux

Running CFEngine on Redhat Linux.