This document provides an introduction to configuration management with Puppet. It discusses the problems system administrators and developers face with managing multiple servers and applications manually. It introduces configuration management as a way to automate and centralize management of packages, files, services and other system components. The document outlines the benefits of Puppet, including visibility, predictability, efficiency and reduced errors. It describes the typical Puppet architecture including the Puppet master, agents, modules and Puppet DSL language. Finally, it demonstrates Puppet concepts through a presentation and code examples.