homebloglearn how puppetize your infrastructure

Learn how to puppetize your infrastructure

Here at Puppet, we're always listening to suggestions and requests from the community for new learning options. And we've heard it loud and clear: There's a need for a course that teaches the kind of Puppet best practices and workflows that get you into the DevOps driver’s seat as soon as possible.

What if you’ve just joined a team with a puppetized infrastructure and need to get up to speed? Or maybe you’ve been dreaming of automation for ages, and finally got the opportunity to build out a proof-of-concept infrastructure. Either way, “Hello world!” just isn’t going to cut it — you need to start doing real work with Puppet, and the quicker the better.

Good news: Puppetizing Infrastructure will do the trick. This three-day training teaches to the same best-practice infrastructure patterns our Puppet professional services engineers deploy for our clients. You’ll learn how to use these patterns with existing Puppet code from the Puppet Forge to implement flexible solutions for managing Windows and Linux systems with minimal custom code.

Take a ground-up approach to learning Puppet

For a long time, our Puppet Fundamentals course has been the go-to training, both for people new to Puppet and those with some experience looking to shore up their foundations. "Fundamental" doesn't actually mean "easy" — it means bottom-up, so the course starts from Puppet’s core concepts and elements and and builds up from there.

It’s a thorough approach, one that some of our students have compared to drinking from the firehose. While this ground-up approach has served our students well, it isn’t the best fit for everyone’s needs and learning style.

Enter Puppetizing Infrastructure. This course is for those who want to see the big picture first and work in from there. It’s for you if you want to get Puppet on the road and see where it can take you before you commit to popping open the hood and learning how to tinker with the engine block. Puppetizing Infrastructure emphasizes the best tools and design patterns for getting Puppet production-ready. While there is more emphasis on writing Puppet code in the Puppet Fundamentals course, Puppetizing Infrastructure provides a plan of action and examples for building solutions out of existing modules from the Puppet Forge.

By working with this existing code base, you can start solving real problems much more quickly. The flexibility of Puppet modules exemplifies Puppet’s adaptability to different operating systems you may be managing in your infrastructure. You will be able to work hands-on with both Windows and Linux systems, getting a taste of Puppet’s integrations with Windows Desired State Configuration (DSC) features.

Start with the Puppet basics

The three-day online course begins with an overview of the Puppet basics — what it is and how it works — before moving on to cover the version-control workflow you’ll use throughout the course to update and deploy your Puppet codebase. If writing code isn’t in your job description, though, don’t worry! The Puppet code you write will be simple, and if you prefer a GUI to using command line, you’ll be able to edit through a slick online Git interface. These workflows around code management and deployment are an essential part of building out your Puppet infrastructure, as maintaining a code base with proper branches and versioning allows you to easily implement aligned environments for your dev, test, and production infrastructure.

Next is roles and profiles

With your version control and code management architecture in place, you will then move on to cover the roles and profiles pattern for classification. Roles and profiles provide a layer of abstraction between any implementation and configuration details related to the Puppet code you’re using and the classification of nodes in your infrastructure according to the business problem they address. With a roles and profiles pattern implemented, configuring a web server for your application will be as simple as assigning a single role to that node. By combining this powerful pattern with existing Forge modules, you’ll quickly see how easy it is to define complete solutions with minimal need for writing, testing and maintaining customized code.

Don’t forget data separation

The third major topic covered in the course is data separation. Basic data separation is essential to maintaining an agile and secure Puppet deployment, while more advanced techniques can give you a huge amount of leverage over the variety of configuration customizations you can maintain in your infrastructure, with minimal changes to the underlying Puppet code. While our Puppet Fundamentals training covers Hiera, Puppetizing Infrastructure will show you how to use Hiera to manage all the site-specific data related to your infrastructure, and how to integrate this tool into the architecture you’ve built out during the earlier lessons. You'll get a better picture of what Hiera can do from a higher-level perspective.

Troubleshooting techniques

Finally, the course will cover some essential troubleshooting techniques. A puppetized infrastructure relies on a whole set of tools and services working together smoothly, so when something breaks, it’s not always obvious what went wrong. You’ll learn how to diagnose some of the more common issues that can crop up, and get a broader understanding of how Puppet’s components interact. You may need this broader picture to troubleshoot other issues you could encounter in the future.

Kevin Henner is a training solutions engineer at Puppet.

Learn more