Planet Puppet

Your source of Puppet technical information

The ROI of Puppet virtual training

Stephanie Stouck, 22 hours, 13 minutes | Source: Puppet Labs

Puppet virtual training is great for your team and for your budget, too. New virtual courses help you advance Puppet skills while saving money.

[ Read More ]

What DevOps and lean auto manufacturing have in common

Molly Hinrichs, 1 day, 20 hours | Source: Puppet Labs

An infographic exploring the connections between lean auto manufacturing and software delivery.

[ Read More ]

New Year resolution: Upgrade Puppet Enterprise

Stephanie Stouck, 3 days, 21 hours | Source: Puppet Labs

Now you can choose between two different upgrade paths to make sure you're always getting the best out of Puppet Enterprise.

[ Read More ]

Tip of the Week 8 - Using Puppet Resource References the right way

Anonymous, 5 days, 10 hours | Source: Example 42

class phpmyadmin { package { 'phpmyadmin': ensure => present, require => Service['apache'], } } What is wrong with this code? You have build a hidden dependency between the phpmyadmin class and the class which declares the Apache Service resource. Why is this bad? You can never use the class phpmyadmin standalone. The phpmyadmin class should be a Technical Component Class which can be used alone or in any other combination of classes. Besides this: you are forcing the users of your class to have phpmyadmin running on Apache webserver only. How should this be done right? Use local Resource References. class phpmyadmin { package { 'phpmyadmin': ensure ...

[ Read More ]

DevOps and the CIO: Advice from a finance CIO & CTO

Aliza Earnshaw, 1 week | Source: Puppet Labs

If you want your technology to give you a strategic advantage, you should be promoting a DevOps culture and DevOps practices at your organization.

[ Read More ]

Tip of the Week 7 - Using Exec resource the right way

Anonymous, 1 week, 5 days | Source: Example 42

exec { ‘touch /tmp/foo’: } Ouch. Exec resource abusing seems to be an often used pattern. Consider an Exec resource being an emergency exit. It is a powerful resource type that offers you to do almost anything to a system. But please keep in mind that with great power comes great responsibility. You (as the author of the Exec resource type declaration) are responsible for idempotency and error handling. Best practice is to have an Exec resource for one-time commands only. This does not refer to a single puppet run, but throughout the life cycle of the system. Don’t forget ...

[ Read More ]

Choria Update

R.I. Pienaar, 1 week, 5 days | Source: R.I.Pienaar -

Recently at Config Management Camp I’ve had many discussions about Orchestration, Playbooks and Choria, I thought it’s time for another update on it’s status.

I am nearing version 1.0.0, there are a few things to deal with but it’s getting close. Foremost I wanted to get the project it’s own space on all the various locations like GitHub, Forge, etc.

Inevitably this means getting a logo, it’s been a bit of a slog but after working through loads of feedback on Twitter and offers for assistance from various companies I decided to ...

[ Read More ]

Tip of the Week 6 - Resources from Hash Data in Puppet 4

Anonymous, 2 weeks, 5 days | Source: Example 42

Puppet is always about abstraction. But please never forget maintainability, readability and simplicity (K.I.S.S). Nowadays we often see code like the following: class my_great_thing ( $data = {}, ){ $default = { ensure => present, } create_resources('user', $data, $default) } Great abstraction, but what happens really? When declaring the class my_great_thing, puppet compiler will automatically do a hier alookup for the key my_great_thing::data. Maybe the key-value looks like this: my_great_thing::data: 'foo': home: '/home/foo' shell: '/bin/bash' uid: '1044' gid: '1044' 'bar': home: '/home/bar' shell: '/bin/bash' uid: '1045' gid: '1045' These data are not used with the create_resource function, which will ...

[ Read More ]

Red Hat Summit 2017 S102320: Button Push Deployments With Integrated Red Hat Open Management

laurent, 3 weeks, 4 days | Source: Laurent Domb Blog

My 2017 redhat summit talk “Button Push Deployments With Integrated Red Hat Open Management” got accepted. I have the big honor of sharing the talk not just with my last years co presenter Michael Dahlgren but also with Red Hat EMEA’S configuration management extraordinaire Maxim Burgerhout.

As we combine our talks you can expect an awesome mixture of different demos and showcases around Red Hat Open Management.

[ Read More ]

Tip of the Week 5 - RSpec Testing on existing Puppet code

Anonymous, 3 weeks, 5 days | Source: Example 42

Many Puppet code bases are pure Puppet code without unit or integration testing. Most maintainers of such a code base fear the work for adding tests to their code. But what is it that you as a maintainer would like to achieve? Normally you are happy when you can check whether your Puppet code still compiles on a newer Puppet version. Just adding this kind of unit tests is easy and depends on your code layout: do you have repository per module do you have one monolithic repository Let’s go for the first solution: You need a Gemfile, a ...

[ Read More ]

Making the Puppet vRealize Automation plugin work with vRealize Orchestrator

rnelson0, 4 weeks | Source: RNELSON0

I’m pretty excited about this post! I’ve been building up Puppet for vSphere Admins for a few years now but the final integration aspects between Puppet and vSphere/vCenter were always a little clunky and difficult to maintain without specific dedication to those integration components. Thanks to Puppet and VMware, that’s changed now. Puppet announced version […]

[ Read More ]

Choria Playbooks – Data Sources

R.I. Pienaar, 1 month | Source: R.I.Pienaar -

About a month ago I blogged about Choria Playbooks – a way to write series of actions like MCollective, Shell, Slack, Web Hooks and others – contained within a YAML script with inputs, node sets and more.

Since then I added quite a few tweaks, features and docs, it’s well worth a visit to to check it out.

Today I want to blog about a major new integration I did into them and a major step towards version 1 for Choria.


In the context of a playbook or even a script calling out to other system there’s ...

[ Read More ]

Automating Puppet tests with a Jenkins Job, version 1.1

rnelson0, 1 month, 1 week | Source: RNELSON0

Today, let’s build on version 1.0 of our Jenkins job. We are running builds against every commit, but when someone opens a pull request, they don’t get automated builds or feedback. If the PR submitter even knows about Jenkins, and has network access and a login, they can look at it to find out how […]

[ Read More ]

Automating Puppet tests with a Jenkins Job, version 1.0

rnelson0, 1 month, 1 week | Source: RNELSON0

As I’ve worked through setting up Jenkins and Puppet (and remembering my password!), I created a job to automate rspec tests on my puppet controlrepo. I am sure I will go through many iterations of this as I learn more, so we’ll just call this version 1.0. The goal is that when I push a […]

[ Read More ]

Upgrading Puppet OpenSource Agents with puppet_agent and jlambert121/puppet

rnelson0, 1 month, 2 weeks | Source: RNELSON0

Last week, I discussed how to upgrade your Linux and Windows Puppet Enterprise agents with puppet_agent. Today, we will look at two different ways to upgrade your Puppet OpenSource agents, first with puppet_agent and then with jlambert121/puppet. There are many other modules that you can use to manage puppet, some of which offer similar functionality […]

[ Read More ]

Ten minute hacks: Process pause & resume

purpleidea, 1 month, 2 weeks | Source: The Technical Blog of James

I’m old school and still rocking an old X220 laptop because I didn’t like the new ones. My battery life isn’t as great as I’d like it to be, but it gets worse when some “webapp” (which I’d much rather have as a native GTK+ app) causes Firefox to rev my CPU with their websocket (hi gmail!) poller.

This seems to happen most often on planes or when I’m disconnected from the internet. Since it’s difficult to know which tab is the offending one, and since I might want to keep that tabs ...

[ Read More ]

Choria Playbooks

R.I. Pienaar, 2 months | Source: R.I.Pienaar -

Today I am very pleased to release something I’ve been thinking about for years and actively working on since August.

After many POCs and thrown away attempts at this over the years I am finally releasing a Playbook system that lets you run work flows on your MCollective network – it can integrate with a near endless set of remote services in addition to your MCollective to create a multi service playbook system.

This is a early release with only a few integrations but I think it’s already useful and I’m looking for feedback and integrations to build ...

[ Read More ]

An update on my Choria project

R.I. Pienaar, 2 months, 1 week | Source: R.I.Pienaar -

Some time ago I mentioned that I am working on improving the MCollective Deployment story.

I started a project called Choria that aimed to massively improve the deployment UX and yield a secure and stable MCollective setup for those using Puppet 4.

The aim is to make installation quick and secure, towards that it seems a common end to end install from scratch by someone new to project using a clustered NATS setup can take less than a hour, this is a huge improvement.

Further I’ve had really good user feedback, especially around NATS. One user reports 2000 nodes ...

[ Read More ]

Send/Recv in mgmt

purpleidea, 2 months, 2 weeks | Source: The Technical Blog of James

I previously published “A revisionist history of configuration management“. I meant for that to be the intro to this article, but it ended up being long enough that it deserved a separate post. I will explain Send/Recv in this article, but first a few clarifications to the aforementioned article.


I mentioned that my “revisionist history” was inaccurate, but I failed to mention that it was also not exhaustive! Many things were left out either because they were proprietary, niche, not well-known, of obscure design or simply for brevity. My apologies if you were involved with Bcfg2, Bosh, Heat ...

[ Read More ]

A revisionist history of configuration management

purpleidea, 2 months, 3 weeks | Source: The Technical Blog of James

I’ve got a brand new core feature in mgmt called send/recv which I plan to show you shortly, but first I’d like to start with some background.


This is my historical perspective and interpretation about the last twenty years in configuration management. It’s likely inaccurate and slightly revisionist, but it should be correct enough to tell the design story that I want to share.

Sometime after people started to realize that writing bash scripts wasn’t a safe, scalable, or reusable way to automate systems, CFEngine burst onto the scene with the first real solution ...

[ Read More ]