A CFEngine provisioner for Test Kitchen.


Add this line to your application's Gemfile:

gem 'kitchen-cfengine'

And then execute:

$ bundle

Or install it yourself as:

$ gem install kitchen-cfengine

Provisioner Configuration

The following attributes may be set at the provisioner level:

  • name - cfengine
  • cfenging_type - either community or enterprise, defaults to community
  • cfengine_community_quick_install_url - url for the cfengine-community quick install script, defaults to
  • cfengine_enterprise_quick_install_url - url for the cfengine-enterprise quick install script, defaults to
  • chef_omnibus_url - url for chef omnibus install, defaults to
  • cfengine_policy_server_address - optional IP address or hostname for policy server, if no address is provided the VM is bootstrapped to itself
  • cf_agent_args - arguments to pass to cf-agent on provisioning, defaults to -KI
  • cf_agent_runs - number of times to run cf-agent, useful if multiple runs are needed for full convergence, defaults to 1
  • cfengine_files - specifies a directory that will be copied into /var/cfengine/ on the VM, defaults to test/cfengine_files

Additionally you may set the run_list attribute at the suite level to run a specific policy file.

Example Usage

Below is a sample .kitchen.yaml file that will install CFEngine Enterprise on CentOS 6.5, bootstrap it to the remote policy hub, then run the policy file with the -KI -D testrun arguments:

  name: vagrant

  name: cfengine
  cfenging_type: enterprise
  cf_agent_args: -KI -D testrun

  - name: centos-6.5
      box: chef/centos-6.5

  - name: default