Puppet Puppet


Learning Puppet

Students will start by installing Puppet Enterprise, then learn Puppet best practices and use Puppet to write simple classes, and update and extend existing modules. Puppet Fundamentals is taught through a combination of lecture and relevant, real world, hands-on exercises.

3 Days

After completing this course, students will be able to deploy basic system configurations using best practices for Puppet in a Master-Agent setup.

In this course, we expect students to have little to no experience with Puppet Enterprise (or Puppet Open Source) and are looking to build a foundation for future growth, experience, and knowledge.


  • Introduction To Puppet
  • About This Course
  • Puppet Head First (Building A MOTD Module)
  • Puppet Enterprise Stack And Core Concepts
  • Nodes

Puppet Components

  • Installing The Puppet Master & Learning Puppet Master Layout
  • Installing The Puppet Enterprise Agent
  • conf
  • Resource Abstraction Layer
  • Facter
  • Live Management
  • Catalog Compilation

Building Modules And Classes

  • Module Structure & Class Naming
  • Defining And Testing Our First Class
  • Declaring Classes And Creating Node Definitions
  • Autoloading

Puppet DSL

  • DSL Overview
  • Getting Started And Looking At Arrays
  • Relationships And Dependencies (require/subscribe)
  • Adding SSH Class To The Node Definition
  • Relationships And Dependencies (before/notify)
  • Conditional Statements
  • Conditional Statement Best Practices
  • Regular Expression If Statements
  • Adding An Ubuntu Node And Testing
  • Metaparameters
  • Files And Resource Defaults
  • Variables, Parametrization, And Scope
  • Inheritance
  • rvalue Functions
  • Templates
  • Creating The NTP Class
  • Resource Collectors
  • Defining Class Parameters Part 1
  • Defining Class Parameters Part 2
  • Class Parameters And Scope Example
  • Variable/Class/Module Naming Conventions
  • How Puppet Enforces Execution In A Catalog

Roles and Profiles

  • Overview
  • Creating A Profiles Module
  • Creating A Roles Module


  • Hiera Overview
  • Setting Up Our Configuration File And Data Sources
  • Using Hiera By Example

Building An Apache Module

  • Building The Environment And Overview
  • Building The Apache Classes And Parameters
  • Building The Core Classes And Resource Types
  • Adding Directory Management
  • Adding Defined Resource Types
  • Creating The Required Templates And Testing
  • Adding Multiple Virtual Host Files

Node Classification

  • pp and Node Definition Matching
  • External Node Classifiers
  • Classifying Node With The Console
  • Using Site.pp With An ENC

Puppet Management

  • Common Console Tasks
  • Troubleshooting
  • Reporting
  • Preparing Modules For Puppet Forge & Downloading Forge Modules
  • Deactivating a Puppet Enterprise Agent Node
  • Event Inspector
  • External Facts
  • Checking Values of Settings
  • Puppet Resource Command

Resource Type Practice

  • Host
  • Resource Type Titles
  • Mount
Invalid data source. Please correct the following errors:

  • The data source tag/idis missing or it is invalid