Planet Puppet

Your source of Puppet technical information

Tip of the Week 34 - Encrypt your secrets with Hiera eyaml

Anonymous, 13 hours, 46 minutes | Source: Example 42

Hiera-eyaml is a Hiera backend which can be used to encrypt single keys in Hiera yaml files. It has become the standard the facto to manage passwords, secrets and confidential data in Puppet. It’s now included by default in Hiera 5, (shipped with Puppet version > 4.9), in earlier versions in can be installed as a gem: gem install hiera-eyaml On the Puppet server we need to do that also in Puppet environment: puppetserver gem install hiera-eyaml To configure it we need to specify the backend in hiera.yaml and the location of the keys used to encrypt ...

[ Read More ]

Beyond English: Supporting multiple languages in Puppet modules

Davin Hanlon, 2 days, 22 hours | Source: Puppet Labs

See how we’re using RuboCop to enable the community to create modules that are available in multiple languages.

[ Read More ]

Develop modules faster with the new Puppet Development Kit

Lindsey Smith, 5 days, 22 hours | Source: Puppet Labs

New open source Puppet Development Kit helps you develop Puppet modules faster, with best practices & module testing built in. Also, Windows tools.

[ Read More ]

Tip of the Week 33 - Testing a control-repo with Vagrant

Anonymous, 1 week | Source: Example 42

When we develop our Puppet code it’s useful to have the possibility to test the effect of what we are doing on real systems, running Puppet on them, using our code under development, and seeing what happens without the need to commit anything. Traditional testing methods based on spec tests don’t verify the actual effect of our code on systems (they analyse the generated catalog to verify if it has the expected resources), we need to run real code on real operating systems. Vagrant is the perfect tool for this and we can use it in our Puppet ...

[ Read More ]

Getting efficient with modules: PRs and release powers

Helen Campbell, 1 week, 3 days | Source: Puppet Labs

How we worked towards the automation of our release process for Puppet Forge modules, and how we now report through ChatOps to improve our efficiency.

[ Read More ]

International Cat Day: Grab the 25% celebration discount for PuppetConf 2017

Lisa Gregory, 1 week, 6 days | Source: Puppet Labs

Get an extra 5% discount 8–10 August when you register for PuppetConf 2017, for a total 25% early bird/cat discount.

[ Read More ]

Tip of the Week 32 - Puppet class indirection via Hiera

Anonymous, 2 weeks | Source: Example 42

There are words that we, well I, sometimes use with hesitation: we are not 100% sure about their meaning, especially when they are in a foreign language. Puppet class indirection is one of these. It’s the name I give to the pattern I’m going to describe in these lines, but I’m not fully sure that’s a correct one. Anyway, I already happened to write about class indirection driven via Hiera, let’s review here the key principles and see some use case. We are used, with Puppet, to include classes which contain other classes. It happens ...

[ Read More ]

puppet network module 3.10.0

Michael Arnold, 2 weeks, 6 days | 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 ]

Tip of the Week 31 - Request for Feedback - sort_merged_arrays fix and problems with older Puppet versions

Anonymous, 3 weeks | Source: Example 42

With Puppet 4.10.5 and 5.0.2 a fix for a missing functionality was released: sort_merged_arrays lookup option. In earlier versions of Puppet this was named ‘sort_merge_arrays’ but lacked the functionality. Unluckily Puppet did not build the fix with backward compatibility. When using ‘sort_merge_arrays’ the following will happen: Puppet 4.10.4/5.0.1 or earlier: success - but no functionality Puppet 4.10.5/5.0.2 or later: compiler failure When using ‘sort_merged_arrays’ the following will happen: Puppet 4.10.4/5.0.1 or earlier: compiler failure Puppet 4.10.5/5.0.2 or ...

[ Read More ]

strict_variables and the RazorsEdge Puppet Modules

Michael Arnold, 3 weeks, 5 days | 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 (, 1 month, 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, 1 month, 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, 1 month, 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, 2 months | 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, 2 months | 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 ]

Testing multiple Puppet versions with TravicCI (and allowing failures)

Dean Wilson (, 2 months, 2 weeks | Source: Dean Wilson@UnixDaemon

When it comes to running automated tests of my public Puppet code TravisCI has long been my favourite solution. It’s essentially a zero infrastructure, second pair of eyes, on all my changes. It also doesn’t have any of my local environment oddities and so provides a more realistic view of how my changes will impact users. I’ve had two Puppet testing scenarios pop up recently that were actually the same technical issue once you start exploring them, running tests against the Puppet version I use and support, and others I’m not so worried about.

This use ...

[ Read More ]

Announcing multi_epp - Puppet function

Dean Wilson (, 2 months, 3 weeks | Source: Dean Wilson@UnixDaemon

As part of refreshing my old puppet modules I’ve started to convert some of my Puppet templates from the older ERB format to the newer, and hopefully safer, Embedded Puppet (EPP).

While it’s been a simple conversion in most cases, I did quickly find myself lacking the ability to select a template based on a hierarchy of facts, which I’ve previously used multitemplate to address. So I wrote a Puppet 4 version of multitemplate that wraps the native EPP function, adds matching lookup logic and then imaginatively called it multi_epp. You can see an example of it ...

[ Read More ]

Declarative vs. Imperative paradigms

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

Recently, while operating two different remote-controlled appliances, I realized that it was high time for a discussion about declarative and imperative paradigms. Let’s start by looking at the two remotes:


Two different “remotes”. The one on the left operates a television, and the one on the right controls a central heating and cooling system.

At first glance you will notice that one of these remotes is dark, and the other is light. You might also notice that my photography skills are terrible. Neither of these facts is very important to the discussion at hand. Is there anything interesting that ...

[ Read More ]

Talk about Choria and NATS

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

Recently I was given the opportunity by the folk to talk about Choria and NATS on one of their community events. The recording of the talk as well as the slide deck can be found below.

Thanks again for having me team!

[ Read More ]

vRealize Orchestrator Workflows for Puppet Enterprise

rnelson0, 4 months, 2 weeks | Source: RNELSON0

Over the past three years, my Puppet for vSphere Admins series has meandered through a number of topics, mostly involved on the Puppet side and somewhat light on the vSphere side. That changed a bit with my article Make the Puppet vRealize Automation plugin work with vRealize Orchestrator, describing how to use the plugin’s built-in […]

[ Read More ]