This document provides an overview of Puppet, an open source configuration management tool. It discusses how Puppet allows systems to be managed at scale through declarative configuration code. Resources in Puppet are abstracted and portable across operating systems. Puppet brings the benefits of idempotence and reproducibility to system administration tasks.