Puppet Practitioner


In Puppet Practitioner students will learn why they should manage their Puppet infrastructure the right way. Students will learn multiple ways to accomplish tasks in Puppet. They will learn to choose which is most appropriate for a given situation. They will design and build modules, and extend modules from the Forge. And they will also learn best practices for implementing Roles & Profiles in their infrastructure.

Course Objective – What you will learn

  • More advanced Puppet DSL constructs that can you use to write more elegant code.
  • Using data structures to create resources programmatically.
  • Using custom facts to expose information about nodes.
  • The concepts of modularity and composability and how they refer to module design.
  • Methods for testing your Puppet code and infrastructure.
  • Using MCollective from the command line to automate infrastructure orchestration.
  • Troubleshooting techniques and standard log files.
  • The Roles & Profiles design pattern and the benefits it offers.
  • Several different methods for managing portions of files.
  • Why the Anchor Pattern exists and when one should use it or the `contain()` function.
  • Creating generalizable modules and contributing them back to the community via the Puppet Forge.
  • Sharing functionality between classes using inheritance.

Target Audience

In this Puppet Practitioner course, we expect students to have a reasonable level of Puppet experience. Complete first the ‘Getting started with Puppet’ course. Or, have enough hands-on experience with Puppet.

We designed this course for senior system administrators and DevOps professionals. They need to have a solid understanding of configuration management strategies.


  • Know the command line. If you aren’t using it at present, refresh yourself with an online course like The Command Line Crash Course. Note: we use bash in class.
  • Familiarity with Linux concepts such as services, packages and configuration files. If you work primarily in Windows, you can try out this Unix tutorial. We also recommend this shell script tutorial.
  • Be familiar with a text editor such as vi, Vim, Emacs or nano. Puppet Labs trainers typically use Vim. We recommend printing yourself a Vim cheat sheet, and you could even study up on Vim in advance.
  • You definitely need sysadmin skills. You should know:
    • how to restart a service
    • what an entry in /etc/hosts means
    • what a hostname is
    • how to troubleshoot basic networking problems such as name lookups, DNS lookups, and basic connectivity
  • Be able to configure a virtual machine (your choice of VMware or VirtualBox) to use bridged or NAT networking
  • Know how to navigate the file system.
  • Be ready to completely shift configuration management paradigms! Writing Puppet code is not like writing your average shell script, so prepare to learn a new way of thinking.


This course is recommended preparatory training for the future Puppet Master certification. Also recommended are: “Getting started with Puppet” and “Extending Puppet using Ruby”.

Important notice

This course does not handle the puppet infrastructure setup and implementations. In other words, this is the subject of a new course, namely, Puppet Architect, which will be scheduled soon. 

In Puppet Architect students will learn how to design their own infrastructure and define their own right way to implement Puppet. Students use advanced Puppet DSL techniques affecting how modules are architected. Students will learn classification and data lookup techniques. They will be able to determine the most efficient and extensible architecture to scale Puppet to their own needs.

This course can be rescheduled depending on the number of registrations