Please note: This post is outdated. See this post for up-to-date info.
We offer new training classes frequently! See our Training page for the latest offerings.
We take a pretty ridiculous amount of pride in our training. Not a week has gone by without us improving something in some way (okay, maybe the Christmas holiday is slow). So Puppet Labs trainings are not your standard “get out of work free” classes. Each training is three to four days of intense, immersive learning, setting you up to become the master of your infrastructure, whether you are using Puppet Enterprise or Puppet Open Source.
We want to make sure you get the most out of your training — or if you’re the training coordinator inviting us to your workplace, ensure your company gets every bit of value out of the classes it’s paying for. The guidelines in the first section below are for the individual student. If you’re coordinating private, on-premises Puppet Labs training for your company, there’s a section for you lower down.
For Individual Puppet Enterprise Students
There are a lot of things you can do to optimize your learning experience. You should get enough sleep the night before and have a nice cup of coffee (or 10) and a good breakfast the morning of ... but you already knew that.
Make sure you arrive on time - and by that, we mean 15 minutes early. We get started right away, since there’s a lot to cover, and we want to allow plenty of time for questions. If your training is happening at your workplace, your employer may bring lunch in. If that’s not the case, make sure you can eat lunch in the hour allowed. You should not miss the start of the afternoon sessions. (If you’re taking a public training, we’ll provide lunch.)
Because Puppet Labs trainings are so involved, you really need to be in the classroom with no distractions for the entire class time. Each concept builds on the previous lessons, so guarding your time is essential. Put someone else on fireman duty — tell your boss that if he/she wants to get what the company paid for, you need to be fireproof for the duration of the course. Puppet Labs training is an investment, and each distraction takes away from return on that investment. Good bosses like to hear you care about protecting company resources!
Here’s what you need to have under your belt before training:
- 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 junior-level 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.
- Have the Puppet Training VM loaded on your computer before you show up. Your computer will be an agent node during the in-class exercises, and the trainer’s computer will be the puppet master. We will run through the configuration and installation process for this VM, so you don’t even need to boot it up yet. Just make sure that it’s on your computer and you know how to start it.
- 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.
Choose the right class for you. Check out the descriptions further down this page to make sure you’ll be neither bewildered nor bored.
For Coordinators of Private Puppet Training
As we said above for individual students, Puppet Labs trainings are intense and packed with information. Each concept builds on what has already been taught, so you need to make sure your employees are present and able to pay attention throughout the course. This means arranging for other people to take care of the work your students normally cover for the duration of the course. Our trainings are an investment for your company, and dividing students’ attention is counterproductive to their learning. Make the most of your company’s investment by ensuring students can concentrate.
Make sure your employees know they must arrive on time. We get started right away, since there’s a lot to cover, and we want to make sure there’s plenty of time for questions. We strongly recommend that you provide lunch and plenty of high-quality coffee for your employees — they need to be able to concentrate on the class, and to take no more than an hour for lunch.
Here are the conditions you need to provide for a successful Puppet Enterprise training:
- The classroom should have:
- Wi-Fi available for the trainer and students, on the same network segment and without any sort of captive portal. All the machines should be able to easily communicate with another and the public Internet.
- A projector and screen
- A whiteboard or large notepad or other display for writing information
- Each student needs a Wi-Fi enabled laptop with:
- 10GB free hard drive space
- 2GB memory
- 2.5 GHz or faster
- VMware Fusion/Player/Workstation (preferred) or
- Oracle VirtualBox
- and with the pre-configured CentOS VM image downloaded for VMware or VirtualBox
- Puppet Training VM. Students need only the downloaded VM image, and an installed player that can open the image (as detailed above). The image doesn’t need any configuration since we run through the configuration and installation of Puppet Enterprise in class. If for some reason you have difficulty using the image, arrive early at 8:30 AM on the first day, and we’ll be happy to help.
Each student needs to have a knowledge foundation before taking our courses. You can find that list in the section above. Please make sure each employee signing up for the course has these prerequisites.
Puppet Labs Training Classes
These descriptions should help students (or their managers) figure out which course is most appropriate for them.
Introduction to Puppet
In Intro to Puppet, students will learn why they should use Puppet Enterprise to help them solve problems with managing their infrastructure. Students will be exposed to core concepts of the Puppet DSL and the components that constitute Puppet Enterprise. This course is primarily lecture-based, but will include relevant real-world examples showing how Puppet Enterprise solves infrastructure management issues.
This course is designed for directors, managers, or anyone else who might be evaluating Puppet Enterprise.
What You Will Learn
- The fundamental component roles that make up Puppet Enterprise and open source Puppet.
- The core concepts for the Puppet DSL, including:
- Modules and classes
- Language constructs
- Building a foundation for building more complex configurations by using advanced classes.
- An introduction to using modules from the Puppet Forge and Supported Modules.
Puppet Fundamentals for System Administrators
In Puppet Fundamentals students will learn the Right Way to manage a infrastructure. 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 will be taught through a combination of lecture and relevant, real world, hands-on exercises.
What You Will Learn
- The fundamental component roles that make up Puppet Enterprise (and Puppet Open Source).
- The core concepts for the Puppet DSL, including:
- Modules and classes
- Language constructs
- Separating logic from presentation by using templates.
- Modeling repeatable portions of your configuration by using defined resource types.
- Building a foundation for building more complex configurations by using advanced classes:
- Parameterized classes
- Introduction to inheritance
- Introduction to data separation using Hiera
- Revisiting classification using parameterized classes and automated data binding (ADB)
- An introduction to using modules from the Puppet Forge and Puppet Enterprise supported modules.
- A brief introduction to the Roles and Profiles design pattern.
Advanced Puppet for Puppet Masters
This three-day training course builds on the Puppet Fundamentals course. The course reinforces good workflow models introduced in Puppet Fundamentals training, including:
- Advanced modules and classes
- Separating data from code
- Developing great manifest code
- Reporting and auditing
- Orchestration engine (MCollective)
- Optimizing and scaling Puppet Enterprise
- Code compression and best practices
After completing this course, sysadmins will be able to configure complex systems infrastructure using optimized syntax in a Puppet environment with multiple masters and agents.
This course is designed for senior sysadmins and developers who have mastered the basics of system management within Puppet’s framework and are looking for skills and techniques to implement Puppet Labs technologies in large or complex environments, and for large scale deployments.
Attendees must have completed Puppet Fundamentals training or have equivalent hands-on experience with Puppet Labs technologies. Students should have a minimum of one to two years of systems administration experience, including in Linux/Unix environments.
Extending Puppet Using Ruby
This four-day training course covers advanced skills for professionals who want to extend the capabilities of Puppet Enterprise or open source Puppet, using Ruby. It is not meant to cover generic Ruby programming other than for extending Puppet software. The course does not cover Puppet system administration tasks, such as building Puppet modules. These and other system administration tasks are covered in the Puppet Fundamentals for System Administrators and Advanced Puppet for Puppet Masters courses.
The course provides students with principles and best practices of extending Puppet Labs technologies, including:
- Understanding fundamental aspects of extending the Puppet framework
- Custom resource type and provider development
- Advanced custom facts, functions and report handlers
- Unit spec tests for Ruby and Puppet
- Hiera backends and MCollective agents
After completing this course, students will be able to customize extensions for Puppet Enterprise using best practices that closely integrate an existing installation with the stringent requirements of custom software and infrastructure.
This course focuses entirely on development for Puppet Enterprise or open source Puppet using Ruby. It is not meant to cover generic Ruby programming other than to extend Puppet software. The course does not cover Puppet system administration tasks, such as building Puppet modules. These and other system administration tasks are covered in the Puppet Fundamentals for System Administrators and Advanced Puppet for Puppet Masters courses.
We look forward to seeing you at one of our trainings!