Puppet Language Essentials
The course is part of this learning path
Puppet is an IT automation system. If you need to install, configure, and update servers, then Puppet can help you tremendously. Instead of doing all of these tasks manually, you can tell Puppet to configure your servers for you.
Not only will Puppet free you from the drudgery of repetitive tasks, but you will also gain major benefits, such as consistency, reliability, speed of deployment, ease of recovery, and scalability.
Do you often have slightly different configurations on servers that are supposed to be identical? With Puppet, you’ll no longer have to figure out why something works on one server but doesn’t work on another one because Puppet will configure them in the same way. You’ll also have less downtime because there is less that can go wrong when everything is configured the way it’s supposed to be.
Do you always seem to be adding more servers? Provisioning servers is a breeze when Puppet already knows how to configure them.
This course will get you started on bringing these benefits to your network. It’s a hands-on course with exercises every step of the way to give you experience using Puppet. First, I will show you how to install Puppet on a virtual machine on your own desktop. Then you will use it as a test environment to learn how to write Puppet code to automate server configuration.
- Install Puppet server
- Use pre-built Puppet modules
- Use manifests, classes, resources, facts, nodes, and templates
- Create your own Puppet modules
Welcome to Getting Started with Puppet. I'm Guy Hummel, and I'll be showing you how to use this incredibly helpful software.
So what exactly is Puppet? The simplest answer is that it's an IT automation system. But what does that mean?
Here is a simplified example of a network of servers. It contains web servers, application servers, database servers, and a firewall. Someone needs to install, configure, and update these components. If that someone is you, then Puppet can help you tremendously. How?
Well, Puppet lets you define configurations for all of these components, and then you can tell Puppet to make it so. The benefits of doing this really kick in over time. For example, if you need to add another web server, then you can just drop in a new server and tell Puppet to turn it into a web server that's configured in the same way as all of the other web servers.
Then if something happens to that web server later on, such as the Apache config file changing, then Puppet would get it back to its desired configuration without any human intervention required.
Here are some of the ways that Puppet can make your life easier.
First and foremost, it brings consistency to your servers. You no longer have to figure out why something works on one server, but doesn't work on another one that is supposed to be identical. Second, a great side effect of consistency is reliability. You have less downtime, because there is less that can go wrong when everything is configured the way it's supposed to be.
Third, it is much quicker to deploy applications, especially internally developed applications, which usually require custom installation methods. Once you automate your deployment process, then you can roll out new versions of your software with the push of a button. Fourth, if there is a problem with the new version of software you just rolled out, then you can revert back to the previous version very easily.
Fifth, an automated infrastructure is scalable. Adding more servers is a breeze when Puppet already knows how to configure them.
And finally, it frees you from the drudgery of repetitive tasks, so you can focus on more productive work.
You can find lots of examples of how companies are using Puppet on the Puppet website.
One example is Ambit Energy, which is a one billion dollar gas and electric service provider. Their biggest problem was that they couldn't deploy their internally developed applications fast enough. Before they automated their deployments using Puppet, the IT team performed all software deployments by hand during monthly or quarterly maintenance windows. Now they deploy 30 to 40 applications to production per day and changes to their production environments are made so quickly that no maintenance windows are necessary. This is a typical result from using Puppet.
I should mention that Ambit Energy uses Puppet Enterprise, rather than the open source version of Puppet. Puppet Enterprise is the commercial version, which comes with additional features such as browser-based console and a code manager. However, you can get the automation benefits from the open source version of Puppet as well, and that's the version we'll be exploring in this course.
To get the most from this Puppet course, you should have experience with performing some operations tasks, especially installing and configuring applications on Linux. You should also have some programming experience, although just knowing the basics of a typical programming language should be enough.
This is a hands-on course with exercises every step of the way to give you experience using Puppet.
We'll start by installing Puppet on a VM-- that is, a virtual machine-- on your desktop.
Then you'll install and use a pre-built module from Puppet Labs to perform a simple configuration on your VM.
After that I'll show you how to create your own module, which you'll use to configure a file. In the process, you'll learn about classes, which are named blocks of Puppet code, and manifests, which are the files that contain Puppet code.
Then you'll learn how to define your VM as a node in the Puppet server.
Following that, you'll learn how to define resources to configure an application.
Then we'll get deeper into different aspects of the Puppet language, such as how to use conditional statements, operators, and facts about your infrastructure. You will use this knowledge to build a more complex module.
Finally, I'll show you how to create a template that you can use to automatically create a configuration file for an application.
If you're ready to learn how to make your IT life easier, then let's get started.
About the Author
Guy launched his first training website in 1995 and he's been helping people learn IT technologies ever since. He has been a sysadmin, instructor, sales engineer, IT manager, and entrepreneur. In his most recent venture, he founded and led a cloud-based training infrastructure company that provided virtual labs for some of the largest software vendors in the world. Guy’s passion is making complex technology easy to understand. His activities outside of work have included riding an elephant and skydiving (although not at the same time).