Chapter 1, Writing Your First Manifests, explains Puppet declarative configuration management based on resources and how to implement them.
Chapter 2, Puppet Server and Agents, covers installation and configuration of Puppet Server, and how to comment agents to the server.
Chapter 3, A Peek into the Ruby Part of Puppet - Facts, Types, and Providers, explains the underlying functions of Facter and its facts, types, and providers in Puppet.
Chapter 4, Combining Resources in Classes and Defined Types, covers self-defined resources that allow you to simplify a repetitive code.
Chapter 5, Combining Classes, Configuration Files, and Extensions into Modules, explains the concepts of Puppet environments and node classification.
Chapter 6, The Puppet Beginners Advanced Parts, covers the Puppet features that offer readability, flexibility, and improvements such as EPP templates, virtual and exported resources, and resource defaults.
Chapter 7, New Features from Puppet 4 and 5, explains the concept of Puppet environments and node classification.
Chapter 8, Separation of Code and Data with Hiera, covers a Puppet way of separating code and data, so data can be managed.
Chapter 9, Puppet Roles and Profiles, provides a workflow that allows separate upgrades of upstream modules and local Puppet implementations.