This document provides an overview of Puppet configuration management tool. It discusses that as the number of machines grow in a business, there is a need to push similar configurations across multiple machines. Puppet is an open source tool that can be used to automate and manage configurations of operating systems and applications. It describes the basic components of Puppet including the Puppet master, agents, configuration language and resource abstraction layer. The document also provides steps for a demo setup of Puppet with two Vagrant boxes - a CentOS server and an Ubuntu client.