CFEngine is a mature and widely used tool for configuration management, and Learning CFEngine will help you get up to speed with it. The current release of the book covers CFEngine version 3.12.0 LTS.

The main audience for this book is experienced system administrators of none-to-medium expertise with CFEngine, but more advanced CFEngine users will also find useful snippets and techniques. Its goal is to guide you from installation to advanced examples and concepts by using examples and techniques that can be put to work straight away.

In this website you will find a wealth of content related to the book and to CFEngine:

I encourage you to participate and provide feedback, ideas and questions.

Thank you for visiting! I hope you find it useful. Please let me know if you find anything broken or missing, or if you have any comments or suggestions.

Where to get the book

The latest release of the book is published at LeanPub. You can find its home page at https://leanpub.com/learning-cfengine/.

The original release, published by O’Reilly, can still be found in Safari books online, and through some other vendors (this release covers only CFEngine 3.5):

About CFEngine

CFEngine is a mature and widely used tool for configuration management. It was first released in 1993, and it has evolved over the years to address real needs in real systems, and to match technological developments such as virtualization and cloud computing. CFEngine is fine-tuned to the features and design that make it possible to automate very large numbers of systems in a scalable and manageable way. CFEngine has been designed to be very resource-efficient, and it can run on everything from embedded devices and smartphones to supercomputers.

CFEngine 3 was released in 2008. With the new version came a complete overhaul of its syntax and mode of operation, and many new features such as Knowledge Management and support for virtual environments. CFEngine 3 is declarative and convergent: you specify the state in which you wish the system to be, and CFEngine will automatically and iteratively decide the actions to take to reach the desired state, or as close to it as possible. Underlying this ability is a powerful theoretical model known as Promise Theory, which was initially developed for CFEngine 3, but which has also found other applications in Computer Science and in other fields such as Economics and Organization.