In Puppet Practitioner students will learn why they should manage their Puppet infrastructure the right way.
Note: This is an advanced level course.
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.
After completing this course students will show a mastery of the Puppet DSL and common design patterns providing them with solutions for problem solving techniques and a better understanding of Puppet Best Practices.
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 Puppet Fundamentals 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.
Puppet Fundamentals or
6+ months of experience using Puppet
Have the Training VM downloaded to your computer before you show up. We will run through the configuration and installation for this VM in class, so you don’t need to boot it up prior to class. Just make sure that it’s on your computer and you know how to start it.
- 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.