How to get started with Puppet: A beginner’s guide
Editor's note: We invite you to join us at Puppetize PDX this 9-10 October 2019. It's a beginner-friendly event, complete with training opportunities.
So you’re ready to get started with Puppet and you don’t know where to begin. That’s alright, because this blog post is meant to point you in the right direction.
My most common recommendation for complete newbies is to check out learn.puppet.com and run through a few of the self-paced learning videos that explain what Puppet is and how it works. Once you’ve gotten the hang of that, the Learning VM is the perfect resource for trying out Puppet without having to deploy it in your own environment. The Learning VM is a Docker container that allows you to complete a set of quests, each of which teach you about a fundamental component or feature of Puppet.
Once that’s done, you’re ready to go to the big leagues. That is, managing a handful of machines with Puppet’s 10 free nodes download.
Standing up your master
First things first, you’ve got to decide where your machines are coming from. Will you be running VMs from vRA or VirtualBox? Maybe you’ll need to request a VM from your networking team. Regardless of how you’re running your VMs, installation will the be the same. You’ll need a Linux machine to serve as your Puppet master. Once you have access to this machine, you can download Puppet Enterprise from this list of PE masters. Make sure you’ve met all the hardware requirements before you go down this road. You’ll want to make sure you have enough CPUs and memory allocated for the master.
Once that’s set, you’ll want to head over to the Puppet Enterprise download link again and select the correct download for your OS. You should notice that there are multiple tabs and that the page you’re on also has the links for downloading agents and the Puppet Client Tools. You’ll need to select the OS you need and the download will begin. When it’s complete, you’ll want to untar the tarball from the command line. For more detailed steps, consult the installation documentation. After completing these tasks, you’ll need to run the installer script. It’s in the Puppet Enterprise directory, where you’ll also find the uninstaller script.
From here you’ll execute the installer script. After it executes, it will prompt you on how you want to run the installation. You can run the installation in text mode or in the browser. I’d recommend the browser option.
This is a good time to mention that you’ll need to make sure the proper ports are open, and that
firewalld is disabled. For more information about tuning requirements, please view these docs.
Running through the browser installation, you’ll be prompted to answer questions about your system and deployment. Be sure to have information about the machine’s fully qualified domain name, and a password. Once you’ve made those selections, you can trigger the installation process, which allows you to view the logs so you can see what’s happening on the backend.
Once the installation is complete, select the “Start using Puppet Enterprise” button, which will take you to your Puppet Overview page in the Puppet console. Log in with your user credentials and you’re now ready to install some agents.
The fun factor is about to get all the way dialed up when you start installing agents.
In order to install a Linux agent, you’ll grab the
curl command that’s available in the console view. Go to the Nodes tab on the far left sidebar, then select the Unsigned Certificates section. Copy and paste that command into the command line of the system you wish to have a Puppet agent installed.
Once again, you’ll want to make sure that you’ve SSH’d into the agent, and that you have root access. After you run that command, make sure the
/etc/known_hosts file has the master’s FQDN, IP address and any aliases that are being used. When you’ve completed those checks, run Puppet. The command for doing this is
puppet agent -t.
After the run is complete, go back to the Unsigned Certificates page and hit refresh. You should see that there’s a cert to accept. Accept it and you’re ready to go! For Windows machines, follow the hyperlink that provides instructions on using the single line command for Powershell.
Now that you’ve completed the installation of your agents, it’s time to manage some resources! I also advise folks get going on a resource like NTP. Anything that’s foundational to your work and needs consistent managing is a good place to add value with Puppet. The Puppet Forge has tons of modules that can help you get started and this page on Essential Configuration Tasks to Manage with Puppet is a great guide.
You’ll want to make sure you read over the docs on using classification, as well as how grouping and classifying nodes work. Armed with that information, you’ll be ready to tackle a few tasks with Forge modules and the Puppet console.
Once you feel good about the above mentioned workflow, start incorporating Puppet jobs into the mix. Being able to modify resources and create Puppet jobs that occur across your environment is a powerful capability that enhances the benefits of Puppet Enterprise.
When you start feeling less like a Puppet novice and more like a Puppet pro, start reading up on Code Manager and managing code with Puppet.
And if you’ll be at PuppetConf 2017 next week, be sure to check out the sessions in the Getting Started with Puppet track. Can’t make it? Watch the live stream of the keynote and mainstage sessions.
Grace Andrews is a sales engineer at Puppet.