Becoming a Puppet Certified Professional

Why getting certified

Did you ever wonder about how to become a Puppet Certified Professional?
Most IT professionals will have to get certified on one area or another. Mostly we will have to show our qualifications to customers. Sometimes just to show them off in our CV.

After more than 10 years of extensively writing and using Puppet modules I am prepping myself now to become a Puppet Certified Professional. Having this certification never was a requirement in my professional past, but it does tick off a box, doesn't it?

Since it takes me quite some time to find all the required resources, it'll be the same for others. Therefore I am putting things together here for my own and your convenience. I wrote a few words about puppet infrastructure here.

Of course the first thing to go to is the puppet website. Here you'll find the most details. But then this is only a starting point.

But first a few remarks about using Puppet the way best for you and your environment.

Why to write your own modules

Most people rely on the Puppet Forge to get access to Puppet modules. While this may be a good thing for inexperienced users, it really pays off to write your own modules based on your specific needs and environment. Consider this: You are using only one specific operating system and have very specific requirements for your processes and procedures, as likely written down somewhere in company guidelines. The modules written for the Puppet Forge are actually written to cover many operation systems and all sorts of use cases. You probably would not even understand some or much of the code used there. So instead, you should start writing your own code based on your requirements, because you also learn a lot about your actual infrastructure. At least that is what a good SRE or DevOps engineer should do.

There are some documentations available already on the internet. Some are very detailed, some are just an overview. Of course there is always the puppet documentation itself. I always have used every only the open source version as linked. Feel free to use the Enterprise Edition, but do not be surprised to find out you won't need it. However, software does not develop itself (as of now) and companies need to sell something alright in order to make some dough.

Which IDE should you use

When it comes to Puppet, you will typically not need an advanced IDE for that. I always used gedit, which is the default text editor in gnome and even can highlight Puppet syntax. Some hardcore folks use even vim, which can be pimped to show the Puppet syntax either. However, there is also a Puppet Development Kit available here, which can be helpful for testing your code. After all that is important. I personally always use CICD pipelines for instance via Jenkins to do that testing, but everyone has their own ways. If you are absolutely new to Puppet, I'd be using the PDK alright. At least it get's you going right away with the correct module structure.
And last but not least Visual Studio Code and IntelliJ IDEA can be useful there as well. But ... always keep it simple, know your code and you really should be fine.

How to set up a dedicated environment for studying and developing Puppet

To get started, you will need a playground alright. While the puppet documentation includes details for your minimum setup, at the beginning it is easy enough to hit a few snags on the road due to the documentation possibly being ambiguous enough to leave traps.
You will not need fully fledged extra hardware for such a playground to be set up. Most laptops nowadays allow you to set up a virtual environment using hypervisors like VMware, Virtualbox, KVM etc, where you can set up Virtual Machines (VMs) for that purpose. At a minimum you need a Puppet server, which compiles and provides the code to be implemented and a Puppet agent as a client, which you will use to play around and test your developed code. There also is Puppet DB, which is rather helpful in the real world to collect facts and data generated by Puppet. Although not required for learning how to write Puppet code, sooner or later you will come to use it. For instance you can setup a Nagios monitoring server fully automated using Puppet DB and populate it also fully automated. Pretty cool stuff.

So I used VMware workstation player in the beginning to set this all up and worked with PxE boot and kickstart to get fresh instances of operating systems. You also can use images to start from scratch. Virtualbox supports that as well. Both hypervisors are available for free. Best practices is to set up your Playground with its own separated network to avoid interference with other systems, particularly when using DHCP.

TL;DR

  • get certified because you can proof and show off your skills set
  • write your own code because you need to cover only but explicitly the infrastructure requirements of your company
  • you don't need a complex IDE but can easily use a simple text editor
  • use a hypervisor like VMware or Virtualbox to set up Puppet server, Puppet agents and PuppetDB.

Leave a Reply

Your email address will not be published. Required fields are marked *

five × one =