Puppet Configuration Management Boot Camp



The configuration management and data center automation tool that streamlines every step of IT service delivery, Puppet allows you to provision physical and virtual machines, orchestrate configuration management and develop, test and deploy code faster. Designed to easily automate repetitive and error-prone system administration tasks, Puppet's declarative language allows you to state how your systems should be configured to do their jobs. It's easy to quickly set up systems in a reliable and repeatable way.


  • IT Managers and Leaders
  • Developers and Application Teams
  • System Administrators
  • IT Operations Staff
  • Release Engineers
  • Configuration Managers
  • Anyone involved with IT infrastructure
  • ScrumMasters
  • Software Managers and Team Leads

Learning Objectives

As a continuous hands-on lab intensive course, students will build a fully functional infrastructure using Puppet. By the end of this course you will have a solid understanding and hands-on experience with Puppet, and the knowledge to integrate Puppet into your own operations workflow.

1. Automation

  • The importance of automation
  • Existing automation tools and comparison with Puppet
  • Why Puppet is a preferred tool
  • Different Components of Puppet's architecture
  • Open source Puppet and Puppet Enterprise

2. Setting up your development environment

  • Using the Geppetto IDE
  • Using git to manage your workflow
  • Using Virtualbox for Vagrant
  • Using Vagrant to simulate your environment

3. The Puppet Master

  • Setting up the Puppet Master
  • Passenger for scalability
  • Certificate management
  • Deploying with git

4. Nodes

  • Organizing your nodes
  • Using an external node classifier
  • Hiera

5. Environments

  • Using environments for different parts of your infrastructure
  • Environments and Hiera
  • Dynamic Environments
  • Git workflow for environments

6. The Puppet Forge

  • Using community modules
  • Using R10K to manage modules

7. Custom Module Creation

  • Manifest files
  • Files and Templates
  • Custom facts
  • Using custom facts with Hiera

8. Custom Types

  • Parameterized classes
  • Defined types
  • Types and providers
  • Creating a new type

9. Reporting

  • Enabling reporting
  • Store report output
  • Processing reports

10. The Foreman

  • Install The Foreman
  • Connect The Foreman with Puppet
  • The Foreman as an external node classifier
  • Puppet reports in The Foreman

11. Exported Resources

  • Exported resource concepts
  • Installing PuppetDB
  • Installing and configuring PostgreSQL
  • Configure PuppetDB to use PostgreSQL
  • Configure Puppet to use PuppetDB
  • Declaring exported resources
  • Collecting exported resources

12. Mcollective

  • Installing activemq
  • Configuring nodes to use activemq
  • Using mcollective

13. Putting it all Together

  • Gather our infrastructure requirements
  • Import required community Puppet modules
  • Define our environments
  • Define our roles
  • Create custom modules
  • Define our nodes
  • Test our infrastructure from beginning to end

14. Application Orchestration

Note: Application Orchestration is only available in Puppet Enterprise