CFEngine is a configuration management system that can be used to automate and ensure availability, security, and compliance of applications and services.

Key features include the ability to define configuration of an IT system, system maintenance, checking of system states, compliance, and real-time modifications or updates to the system. 

Machines with CFEngine installed will run a set of component applications that manage and interpret files known as policies. These files contain a set of instructions that ensure machines are in full compliance with a specified state. 

It is constantly monitoring, and if the system’s state starts moving away from what is intended, CFEngine will begin to take corrective action to bring the system back into compliance. 

“CFEngine is not like other automation tools that ‘roll out’ an image of some software once and hope for the best. Every promise that you make in CFEngine is continuously verified and maintained. It is not a one-off operation, but a self-repairing process should anything deviate from the policy,” the project’s documentation states. 

It is available in an open-source community edition and an Enterprise version. Enterprise Edition adds features like a policy analyzer, inventory reporting, and change reporting.