Learning Puppet

In this learning puppet series, you will see my thoughts and notes as I work to teach myself puppet within my own home lab. Any issues I come across will be documented here along with any notes I wish to save to document my journey.

I hope find this series helpful and I challenge you to take on this task with me as well! I have absolute zero experience with using puppet as a configuration management tool. In the past, I have used various shell scripts or powershell scripts to automate configuration tasks. Puppet provides an easier and better way to standardize configuration across your infrastructure.

I will be using the Puppet Learning VM along with a book “Puppet 4.10 Beginner’s Guide” by John Arundel. The book is fairly dated, but after reading several reviews I feel this is a good place to start and then we catch up to the latest release (5.x) from there.

To begin, let’s discuss the lab configuration. My initial thought is to start small with the Learning VM and a small local instance. Once I’m comfortable enough, I would like to test out a larger instance using AWS. Puppet has a Pay As You Go enterprise instance on AWS that is free for 1 – 10 nodes. Even though that may be free, the compute/storage in the lab to run it won’t be which is why I will want to refer to AWS much later.

Home lab configuration:

  • Puppet Master
    • Ubuntu 16.04.2 LTS (Xenial)
    • 6GB RAM
    • 2 x CPU
    • 100GB storage
  • Puppet nodes
    • Ubuntu 16.04.2 LTS (Xenial)
      • DNS1 – DNS server for the home lab
      • WEB1 – Apache/PHP server for testing
      • DB1 – MySQL DB server for testing