This document compares three configuration management tools: Puppet, Chef, and Cfengine. It discusses the principles of configuration management including centralized management, automation, and ensuring configurations match a reference. It then provides a brief overview of each tool, comparing their configuration languages, support for operating systems, licensing, and other features. The document concludes with some advice for migrating between configuration management systems.