Hello CFEngine – CFengine3 on Ubuntu 16.04 Xenial

This article shows you how to install CFEngine 3 on Ubuntu and write a simple “Hello World” program.

Modern configuration management systems let your describe your infrastructure as code in an idempotent way. You define the target state of your computer in text, and the system only makes modifications as needed.
CFEngine is one of the first modern configuration management systems.
Prequisites: command line interface, sudo

Install CFEngine 3

$ sudo apt-get update && sudo apt-get -y install cfengine3

Write Your Policy File

$ nano hello_tero.cf

The contents of hello_tero.cf:

body common control
{
        bundlesequence => { "hello_tero" };
}
bundle agent hello_tero
{
        reports:
                any::
                        "See you in TeroKarvinen.com!";
}

Run

Run (I mean, “activate the bundle”) and see you report:

$ sudo cf-agent --no-lock --file ./hello_tero.cf
R: See you in TeroKarvinen.com!

Well done, you got your “Hello world!”.

Troubleshooting

$ cf-agent --no-lock --file ./hello_tero.cf  # does not work without sudo
2016-11-11T10:04:53+0000    error: cf-promises needs to be installed in /home/vagrant/.cfagent/bin for pre-validation of full configuration
vagrant@cfe:~/shared/cfengine$

Use sudo to use the system wide environment. Without sudo, cfengine expects you to have per-user settings in your home directory.

See also

CFEngine 3.7 Documentation – Examples and Tutorials [WWW Document], n.d. URL https://docs.cfengine.com/lts/examples.html (accessed 11.11.16).

Admistrivia

Updated: Fixed links.

Posted in Uncategorized | Tagged , , , , , , , | Comments Off on Hello CFEngine – CFengine3 on Ubuntu 16.04 Xenial

Comments are closed.