CFEngine Community 3.4.0

CFEngine Community 3.4.0 adds many new capabilities that have been requested by users and which makes it easier than ever to automate provisioning, configuring and managing of large scale IT infrastructure. CFEngine Community is licensed under the Gnu General Public License GPL.   Get it now

New features:

  • XML editing capabilities. See the documentation for edit_xml body. Note the new dependency: libxml2
  • Implement inheritance of local classes by bundles called "usebundle". By default classes are not inherited. See examples/unit_inherit.cf
  • Namespaces support for bundles and bodies. See examples/unit_namespace*.cf for usage
  • Default arguments for bundles. See examples/unit_defaults.cf
  • Metadata promise type. See examples/unit_meta.cf
  • Methods promises now return the status of promises kept within them. If any promise was not kept, the method is not kept, else if any promise is repaired, the method was repaired else it was kept
  • new command hooks in packages promises for better integration with the system's package manager
  • VirtualBox support added to guest_environment promises


Moved from CFEngine Enterprise:

  • POSIX ACL support
  • "outputs" promise type
  • remote syslog support
  • Running in Solaris zone is now detected and classes "zone" and "zone_<name>" are created in this case


Changes:

  • The "depends_on" attribute is now active, for the partal ordering of promises. If a promise depends on another (referred by handle) it will only be considered if the depends_on list is either kept or repaired already.

** WARNING: When upgrading, make sure that any existing use of depends_on does not make some promises being unintentionally ignored. This can happen if you are currently refering to non-existant or never-run handles in depends_on attributes.



Changes to agents:

  • cf-key: new format for cf-key -s, includes timestamp of last connection
  • cf-execd -F switch no longer implies 'run once'. New -O/--once option is added to achieve this behaviour. This makes cf-execd easier to run from systemd, launchd and other supervision systems.
  • New compile-time cf-gendoc tool for reference manual generation; cf-know is no longer part of CFEngine Community
  • cf-promises --parse-tree option to parse policy file and dump it in JSON format


Platform changes:

  • Support for the several outdated platforms and corresponding classes has been removed due to lack of support for C99; see the ChangeLog for details



For a more detailed and complete list of changes, see the ChangeLog file in the package. Several dozens of bugs were fixed since CFEngine 3.3, see https://cfengine.com/bugtracker/changelog_page.php (old bug tracker) and https://cfengine.com/dev/projects/core/versions/34 (new bug tracker) for a complete list.