Planet Puppet

Your source of Puppet technical information

Copyleft is Dead. Long live Copyleft!

purpleidea, 1 day | Source: The Technical Blog of James

As you may have noticed, we recently re-licensed mgmt from the AGPL (Affero General Public License) to the regular GPL. This is a post explaining the decision and which hopefully includes some insights at the intersection of technology and legal issues.


I am not a lawyer, and these are not necessarily the opinions of my employer. I think I’m knowledgeable in this area, but I’m happy to be corrected in the comments. I’m friends with a number of lawyers, and they like to include disclaimer sections, so I’ll include this so that I blend in ...

[ Read More ]

A better experience for Sensu & Puppet users

Jason Dixon, 1 day, 10 hours | Source: Puppet Labs

The Puppet module for Sensu (which has been downloaded 1.8M times) now includes several enhancements, and is a Supported module in the Puppet Forge.

[ Read More ]

Tip of the Week 42 - Puppet plans and tasks

Anonymous, 3 days, 2 hours | Source: Example 42

At PuppetConf2017 the bolt task runner was released and made public. Bolt uses the concept of Puppet tasks to allow workflow based system management, which was missing in Puppet since ages. Puppet itself uses the declarative state configuration model, describing the final state of a system. With declarative description it was always a pain adding workflow based configurations like application updates or running maintenance tasks only at specific times. Bolt fills this gap. With bolt one can run any kind of: upload files to a system run any remote command run any script run a Puppet task run a Puppet ...

[ Read More ]

Introducing Extended support for Puppet Enterprise

Claire Hernandez, 5 days, 1 hour | Source: Puppet Labs

Our new Extended support level provides peace of mind to security and compliance, and gives you more time to upgrade to the latest release.

[ Read More ]

PuppetConf 2017 Day 2 keynotes: Thorsten Biel, Michael Lopp & Tricia Burke

Arik Hesseldahl, 6 days, 4 hours | Source: Puppet Labs

Coming after the biggest batch of announcements in Puppet’s history, you might be forgiven for assuming that Day 2 of PuppetConf would open at something of a slower pace.

[ Read More ]

Retrospec - the Task Generator

Anonymous, 6 days, 7 hours | Source: Logical thoughts exposed

Puppet introduced Bolt at Puppetconf 2017 this year and so far I like what I see. Simple, easy to use remote task execution without a huge requirement of any one language. Best of all puppet modules can start adding one off bolt tasks to help with the administrative duties of various applications. Bolt makes it really easy to get started but adds some required scaffolding to create a properly defined task, namely the metadata file.

One of the use cases of retrospec puppet is to build out this scaffolding for you with the many generators it has. So starting with ...

[ Read More ]

The shift to pervasive automation

Omri Gazitt, 6 days, 11 hours | Source: Puppet Labs

We've realized automation is a journey for every organization, and three challenges stand in their way. Our newest product innovations are here to help.

[ Read More ]

The Choria Emulator

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

In my previous posts I discussed what goes into load testing a Choria network, what connections are made, subscriptions are made etc.

From this it’s obvious the things we should be able to emulate are:

  • Connections to NATS
  • Subscriptions – which implies number of agents and sub collectives
  • Message payload sizes

To make it realistically affordable to emulate many more machines that I have I made an emulator that can start numbers of Choria daemons on a single node.

I’ve been slowly rewriting MCollective daemon side in Go which means I already had all the networking and connectors available ...

[ Read More ]

Tip of the Week 41 - Introducing PSICK - The Infrastructure Puppet module

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

We have talked in the past about PSICK, example42’s Puppet control-repo which provides an integrated, powerful and customisable Puppet setup. This control repo had a set of profiles to manage common configurations using either external modules or local classes. We have seen this set of profiles grow over time and we have realised that they could be useful for any user, also the ones not using our control-repo. So we have decided to make out of them a dedicated, separated module and place there some of the classification logic we had in our control-repos main manifests directory. So here ...

[ Read More ]

Tip of the Week 40 - Tenant modules

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

The Puppet code and data we use to shape and configure our infrastructures often need to be managed by different people, sometimes belonging to different groups. Some of them may have good Puppet skills, some not and just need configurations done in the way they need. A common scenario is where there are different teams managing the basic systems’ configurations and applications: the first group may be the one which introduced Puppet and has most of the knowledge about it, the second one need to use existing code and eventually write custom one, and feed the data to configure their ...

[ Read More ]

Puppet 5 Beginner's Guide (third edition)

John Arundel, 2 weeks, 4 days | Source: Bitfield Consulting

Order your copy now on (

A new book on Puppet for the cloud-native era

A new edition of the bestselling Puppet Beginner’s Guide is now available, covering all the latest features of Puppet 5. Learn Puppet from scratch, from installation to managing complex infrastructures, including chapters on managing Amazon AWS cloud resources and Docker containers with Puppet. Every code example is available right now online in a special GitHub repo just for this book. There is also a complete, working Puppet infrastructure for you to download, adapt, and use on your own servers.

Praise ...

[ Read More ]

Tip of the Week 39 - Secure data management with multiple eyaml keys

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

With improved security implementations it is often required that keys must be separate among different infrastructure stages. This means that we have to deal with multiple eyaml keys for production-stage and ci- and development-stage. Nobody may have the private production key. Everybody should have access to the production public key (which is used for encryption). All other keys can be made available to everybody. First let’s set some top scope variable by analysing facts: # Set top scope variables # eyaml key selection based on existence of an external fact: # 'eyaml_private_base_path' # when fact is set, then we run on spec tests ...

[ Read More ]

Load testing Choria

R.I. Pienaar, 4 weeks, 1 day | Source: R.I.Pienaar -


Many of you probably know I am working on a project called Choria that modernize MCollective which will eventually supersede MCollective (more on this later).

Given that Choria is heading down a path of being a rewrite in Go I am also taking the opportunity to look into much larger scale problems to meet some client needs.

In this and the following posts I’ll write about work I am doing to load test and validate Choria to 100s of thousands of nodes and what tooling I created to do that.


Choria builds around the NATS middleware which ...

[ Read More ]

puppet network module 3.10.0

Michael Arnold, 2 months, 2 weeks | Source: The Razor's Edge

Today, I have released a large update to my Red Hat network Puppet module to the Puppet Forge.  Numerous pull requests were merged including: Added support for promiscuous interfaces. (Elyse Salberg) Added a parameter to disable restart of network service on change. (Evgeni Golov) Added support for netmask and broadcast parameters in alias range. (Nick […]

[ Read More ]

strict_variables and the RazorsEdge Puppet Modules

Michael Arnold, 2 months, 3 weeks | Source: The Razor's Edge

Over the past month I have been adding much needed support for running Puppet with strict_variables = true to all of the RazorsEdge Puppet modules. Thanks to coreone, I finally had a solution that did not require tearing out the legacy global variable support. As much as I think that continued inclusion of global variable […]

[ Read More ]

Converting and Formatting Data Like a Pro With Puppet 4.5.0

Henrik Lindberg (, 3 months, 2 weeks | Source: Puppet on the Edge

Before Puppet 4

Before Puppet 4.0.0 there was basically only the data types; String, Boolean, Array, Hash, and Undef. Most notably missing were numeric types (Numeric, Integer, and Float). In Puppet 4.0.0 those and many other types were defined and implemented in a proper type system. This was all good, but a few practical problems were not solved; namely data conversion. In Puppet 4.5.0 there is a new feature that will greatly help with this task. But first lets look at the state of what is available in prior versions.

Converting String to Number ...

[ Read More ]

Managing SSH server security with Puppet

rnelson0, 3 months, 2 weeks | Source: RNELSON0

Edit: In an earlier edition, I credited the wrong newsletter as the source. My apologies to R.I.Pienaar! In this past week’s DevCo Newsletter, I saw the Rebex SSH Check, which reminded me that I’ve locked down the SSH server security configuration at work, but not at home. Sounds like a good opportunity to blog about […]

[ Read More ]

Puppet 5 has arrived!

rnelson0, 3 months, 2 weeks | Source: RNELSON0

If you missed the news this past week, the Puppet 5 Platform was released! Read the announcement and the release notes for some great details. Congratulations to everyone at Puppet for getting this new release out the door. I’m looking forward to diving in with it as soon as a Puppet Enterprise release is out, […]

[ Read More ]

Where to store Puppet files and templates

rnelson0, 3 months, 4 weeks | Source: RNELSON0

I haven’t written a blog post in a while because I’ve been bogged down in work and life and not had much time in the lab. To make sure I don’t get too out of practice, I’m going to try writing some shorter tips and tricks articles. Let me know what you think. A few […]

[ Read More ]

puppet snmp module 3.8.1

Michael Arnold, 3 months, 4 weeks | Source: The Razor's Edge

Recently, I have delivered several long-awaited releases of my Net-SNMP to the Puppet Forge. Included are numerous fixes from community members: Change so that service_config_perms parameter, network, and community can be arrays. (Jordan Wesolowski) Add OpenBSD to the supported operating systems, similar to FreeBSD support. (Sebastian Reitenbach) Update README.markdown. (Rémy Garrigue) Create Parameters for template […]

[ Read More ]