What this book covers
Chapter 1, Puppet Language and Style, introduces the Puppet language and shows how to write manifests. The Puppet linting tool, puppet-lint, is introduced and we review best practices to write Puppet code. Metaparameters are shown with examples. We also preview proposed changes to the Puppet language by using the future parser.
Chapter 2, Puppet Infrastructure, is all about how to deploy Puppet in your environment. We cover the two main methods of installation, centralized and decentralized (masterless). We show you how to use Git to centrally manage your code. We also configure puppetdb and Hiera.
Chapter 3, Writing Better Manifests, deals with organizing your Puppet manifests. Manifests are used to build modules; we introduce the concept of roles and profiles to abstract how modules are applied to machines. Parameterized classes are introduced. We also show you how to efficiently define resources with arrays of resources and resource defaults.
Chapter 4, Working with Files and Packages, shows you how to manage files using snippets (fragments). We introduce the power of templating with both Ruby (ERB) and Puppet (EPP) templates. We also explore ways to secure information stored in your Puppet manifests.
Chapter 5, Users and Virtual Resources, deals with the advanced topic of virtual and exported resources. Virtual resources are a way of defining resources but not applying them by default. Exported resources are similar but are used to have resources from one machine, applied to one or more other machines.
Chapter 6, Managing Resources and Files, is about dealing with directories and purging resources not controlled by Puppet. We show you how to have file resources applied differently on different machines. Methods for managing host entries in /etc/hosts
are shown with exported resources examples.
Chapter 7, Managing Applications, shows you how to use Puppet to manage your deployed applications. Using public Forge modules, we configure Apache, nginx, and MySQL.
Chapter 8, Internode Coordination, explores exported resources. We use exported resources to configure NFS, haproxy, and iptables.
Chapter 9, External Tools and the Puppet Ecosystem, shows you how to extend Puppet with your own types and providers, how to make your own facts, as well as some of the more advanced tools such as Puppet-librarian and r10k.
Chapter 10, Monitoring, Reporting, and Troubleshooting, is the final chapter where we show you how to leverage Puppet to see where the problems are in your infrastructure. Some of the more common problems are shown with solutions.