Explore Puppet, through the perspective of an operations and infrastructure administrator, in my Puppet for vSphere Admins articles and related content.
Note: The articles below were written with a mix of puppet 3.x and 4.x, but remain valid. Before implementing items, especially from the older pages, ensure that file names and paths are accurate for the version of puppet you are using. See the Upgrading section for assistance with migrations and send me feedback through comments or twitter if you find issues!
Basics
- Creating a Puppet Master
- Kickstart your CentOS Template, EL6 Edition
- Kickstart your CentOS Template, EL7 Edition
- Adding Modules to your Puppet Master
- Manifest and Module Organization, Take One
- Puppet Installables – PuppetDB and Hiera
- Puppet Installables – MCollective
- Puppet Scale Up with Apache/Passenger
- Customizing bash and vim for better git and puppet use
Git
R10k
- Puppet and Git, 201: r10k Setup – Installation
- Puppet and Git, 202: r10k Setup – Conversion, Deployment
- Puppet and Git, 203: r10k Workflow for New Modules
- Puppet and Git, 204: r10k Workflow for Existing Modules
- Puppet and Git, 205: Git Hooks – Pre-Commit
- Puppet and Git, 206: Git Hooks – Post-Receive (and more r10k!)
- Improved r10k deployment patterns
- Configuring an r10k webhook on your Puppet Master
- Discovering Puppet module dependencies for use with r10k
Advanced: Roles and Profiles Pattern, Hiera, Refactoring
- Puppet Reference Material – links to tutorials, examples of well down implementations, tools, etc.
- Intro to Roles and Profiles with Puppet and Hiera
- What goes in a Puppet Role or Profile?
- Hiera, R10K, and the end of manifests as we know them!
- Updating Puppet classification with hiera to use the modern lookup command
- Refactoring a Puppet class for use with Hiera
- Creating a Puppet ERB Template
- Hiera-fy your Hiera setup
- Troubleshooting Hiera from the CLI
Continuous Integration
- Configuring Travis CI on your Puppet Controlrepo
- Configuring Travis CI on a Puppet Module Repo
- Travis CI Build Shield
- Allowing expected failures with Travis CI
- Speeding up Travis CI with Containers
- Scheduling regular Travis CI builds with Cron Jobs
Application Development and Deployment
- Creating Packages with FPM
- Create a Yum Repo
- Deploying your custom application with Puppet
- Puppetize a Build server
- FPM and Build Automation
Managing Puppet Modules
- Publishing Forge Modules
- Update your Puppet modules on the Forge quickly with Blacksmith
- Setting up Modulesync with multiple Puppet modules
- Learn about Puppet module release – via email!
Rspec-Puppet Testing
- Introduction to rspec-puppet
- Beyond rspec-puppet: puppetlabs_spec_helper
- Excluding OS testing with rspec-puppet-facts
- Rspec tests with Hiera data
- Convert a Puppet module from Bundle-based testing to the Puppet Development Kit (PDK)
- Modern rspec-puppet practices [deprecated, use PDK]
- Moving rspec tests to the top of your controlrepo
- Running rspec-puppet tests with granularity
- Parallelized rspec tests
- Including additional resources in your rspec-puppet tests
- Rspec fixtures tip: Symlink to other modules in your Controlrepo
- Print the rspec-puppet catalog
- Video of an rspec-puppet example
- Getting at rspec output you can’t see
Jenkins
- Getting started with Jenkins and Puppet
- Installing Jenkins and RVM
- Jenkins Tricks – Password Recovery and Job Exports
- Automating Puppet tests with a Jenkins Job, version 1.0
- Automating Puppet tests with a Jenkins Job, version 1.1
vSphere and vCenter Integration
- Making the Puppet vRealize Automation plugin work with vRealize Orchestrator
- vRealize Orchestrator Workflows for Puppet Enterprise
Puppet Enterprise
- Deploy your Puppet Enterprise license key with Puppet
- Puppet Enterprise migration from 3.8.4 to 2015.3.3 – a collection of Lessons Learned
My Forge Modules
Tips and Tricks
Tooling
- PuppetInABox: A self-provisioning lab and learning environment that uses Puppet.
- puppet-generate-puppetfile: Generate a Puppetfile for r10k or librarian-puppet and a .fixture.yml for rspec
Upgrading
- Upgrading to Puppet 4
- Updating Linux Puppet Enterprise agent version with puppet_agent
- Updating Windows Puppet Enterprise agent version with puppet_agent
- Upgrading Puppet OpenSource Agents with puppet_agent and jlambert121/puppet
Other
- Tracking Puppet agent status with Puppetboard
- Ruby net/https debugging and modern protocols
- Puppet 4 lessons learned
- Puppetizing Your Organization – PuppetConf 2015 talk
- PuppetConf 2015 Wrap-Up
- Why Puppet?
- Why Not Puppet?
- Migrating to Puppet v3.7.3
- Migrating to Puppet v3.6.1
- Migrating away from Puppet’s deprecate import feature
- Deploying your SSH Authorized Key via Puppet
- Don’t Disable SELinux
- Don’t Disable SELinux, Part 2
- Deploy MySQL using SELinux
- PuppetConf 2016 Wrap-Up
Hi there RNelson0, I’m all about to learn Puppet/Ansible/Chef and this series of articles just come in hand. Could you point me where to start? I’ve ZERO knowledge of Puppet.
One more time, congratulations!
VC
I recommend starting with Puppet Labs’s own Learning VM at https://puppetlabs.com/download-learning-vm and their tutorials at https://learn.puppetlabs.com. It’s a quick way to dive right in with some guard rails to keep you out of the dangerous areas. Then you can come back here and start with the Basics section and move on towards other sections that appeal to you. Aside from the Basics, your learning can be pretty non-linear, you can jump around as needed. I hope that helps!