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 and how to choose which is most appropriate for a given situation. Students will design and build modules, and extend modules from the Forge. Students 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 be used 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 course, we expect students to have a reasonable level of Puppet experience and are looking to expand their knowledge. Students should have completed ‘Getting started with Puppet’ or have the equivalent hands-on experience with Puppet–at least six months to a year.

The course is designed for senior system administrators and DevOps professionals with 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-y concepts such as services, packages and configuration files. If you work primarily in Windows, you can try out this Unix tutorial, and 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, as well as the “Getting started with Puppet” course and the “Extending Puppet using Ruby” course are the recommended preparatory training for the future Puppet Master certification.

Important notice

This course does not handle the puppet infrastructure setup and implementations. This is the subject of a new course : Puppet Architect, which will be sheduled soon. 

In Puppet Architect students will learn how to design their own infrastructure and define their own right way to implement Puppet. Students will use advanced Puppet DSL techniques affecting how modules are architected. Students will learn classification and data lookup techniques, and 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