Appendix C. CFEngine 3.5.2 Agent Promise Attributes

Aleksey Tsalolikhin

CFEngine is designed to be comprehensive and to let you model nearly any aspect of system configuration. There are tens of promise types and hundreds of unique promise attributes to enable modeling the desired configuration. The purpose of this Appendix is to facilitate learning and to serve as reference.

To make this sea of options navigable, this Appendix lists the promise types and attributes affecting the agent (the part of CFEngine that actually makes changes to your system) in a short format (name and synopsis only).

For full details, please consult the Promise Types and Attributes section of the CFEngine documentation.

Don’t let the complexity of hundreds of promise attributes scare you—CFEngine 3 is designed to address the challenges of Knowledge Management, including complexity, and allows you to summarize and abstract the underlying details, to the extent of Webserver("on") to configure a web server.

But if you need to configure your web server a special way, the below details will enable you to do so. Have fun getting under the hood of your system configuration and getting greasy to the elbows!

Attributes of Promises Common to All CFEngine Components

Attributes of “classes” Promises


Scope of the class set by this promise (namespace or bundle).


Combine class sources with AND


Generate a probabilistic class distribution (from strategies in cfengine 2)


Evaluate string ...

Get Learning CFEngine 3 now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.