Planet Puppet

Your source of Puppet technical information

From Sonatype: Puppet-eering the Nexus Repository

Manfred Moser, 23 hours, 41 minutes | Source: Puppet Labs

Manage & provision infrastructure with Puppet, and use the Nexus Repository Manager as a central warehouse for your binary components.

[ Read More ]

What is this DevOps thing anyway?

Stephanie Stouck, 1 day, 15 hours | Source: Puppet Labs

The movement is called DevOps. But what is DevOps actually? Learn what you can achieve and where to get started.

[ Read More ]

Interacting with the Puppet CA from Ruby

R.I. Pienaar, 3 days, 1 hour | Source: R.I.Pienaar -

I recently ran into a known bug with the puppet certificate generate command that made it useless to me for creating user certificates.

So I had to do the CSR dance from Ruby myself to work around it, it’s quite simple actually but as with all things in OpenSSL it’s weird and wonderful.

Since the Puppet Agent is written in Ruby and it can do this it means there’s a HTTP API somewhere, these are documented reasonably well – see /puppet-ca/v1/certificate_request/ and /puppet-ca/v1/certificate/. Not covered is how to make the CSRs and such.

First ...

[ Read More ]

Ten minute hacks: Hacking airplane headphones

purpleidea, 4 days, 18 hours | Source: The Technical Blog of James

I was stuck on a 14 hour flight last week, and to my disappointment, only one of the two headphone speakers were working. The plane’s media centre has an audio connector that looks like this:


Someone should consider probing this USB port.

The hole to the left is smaller than a 3.5mm headphone jack, and designed for a proprietary headphone connector that I didn’t have, and the two holes to the right are part of a different proprietary connector which match with the cheap airline headphones to provide the left and right audio channels.


Completely reversible, and ...

[ Read More ]

The state of DevOps in 2016

Mike Kavis, 1 week | Source: Puppet Labs

Mike Kavis, cloud architect and analyst, dives into the 2016 State of DevOps Report, noting executive involvement, ties to lean management, and more.

[ Read More ]

Containerization and Puppet: Scott Coulton at PuppetConf 2016

Aliza Earnshaw, 1 week, 2 days | Source: Puppet Labs

A preview of Scott Coulton's talk on containers & configuration management at PuppetConf 2016, and learn about his book on containerization & Puppet.

[ Read More ]

CloudForms the Swiss army knife of Hybrid Cloud Management

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

Today a dream came true for me by getting the honor to present at Red Hat Summit in SF 2016 “Automation and configuration management across hybrid clouds with CloudForms, Satellite6 and Ansible Tower“. When I joined Trivadis in 2006 Daniel Steiner who was a Senior Linux Engineer took me under his wings (He had earned a Red Hat Fedora when he passed his RHCE before 2006) I told him that one day I will be speaking at Red Hat Summit. So today is that day. My gratitude goes to him for inspiring me to go down this path.

I am ...

[ Read More ]

Specialising validate_re with wrapper functions in Puppet

Dean Wilson (, 3 weeks, 3 days | Source: Dean Wilson@UnixDaemon

Once your puppet code base reaches a certain size you’ll often have a number of validate_ functions testing parameters and configuration values for compliance with local rules and requirements. These invocations often look like this:

validate_re($private_gpg_key_fingerprint, '^[[:alnum:]]{40}$', 'Must supply full GPG fingerprint')

Once you’ve spent a minute or two reading that you’ll probably be able to understand it; but wouldn’t it be nice to not have to care about the exact details and focus on what you’re actually testing? An approach I’ve been experimenting with on one larger code base is to ...

[ Read More ]

CloudForms Hybrid Cloud Sessions at Red Hat Summit SF 2016

laurent, 4 weeks | Source: Laurent Domb Blog

Please join us at Red Hat Summit in SF and attend the sessions below. Those sessions highlight how versatile CloudForms is and what problems it can solve for you.
Red Hat Summit pass discounted rate of $1,195: RHSRAF

Tuesday, 10:15am
Enabling digital transformation via the Red Hat management portfolio
Alessandro Perilli, Red Hat
Joe Fitzgerald, Red Hat
William Nix, Red Hat

Tuesday, 3:30pm
Red Hat Cloud roadmap

James Labocki, Red Hat
Rob Young – Principal Product Manager, Red Hat
Xavier Lecauchois, Red Hat

Tuesday, 3:30pm
Red Hat containers roadmap
Mike McGrath – Managing Architect, Platform, Red Hat
Xavier ...

[ Read More ]

Automatic clustering in mgmt

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

In mgmt, deploying and managing your clustered config management infrastructure needs to be as automatic as the infrastructure you’re using mgmt to manage. With mgmt, instead of a centralized data store, we function as a distributed system, built on top of etcd and the raft protocol.

In this article, I’ll cover how this feature works.


Mgmt is a next generation configuration management project. If you haven’t heard of it yet, or you don’t remember why we use a distributed database, start by reading the previous articles:

[ Read More ]

Upcoming speaking In Hong Kong and South Africa

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

I’m thrilled to tell you that I’ll be speaking about mgmt in Hong Kong and South Africa. It will be my first time to both countries and my first time to Asia and Africa!

In Hong Kong I’ll be speaking at HKOSCon2016.

In South Africa I’ll be speaking at DebConf16.

I’m looking forward to meeting with many of the hard-working Debian hackers, and collaborating with them to build and promote excellent Free Software. The mgmt project considers both Fedora and Debian to be first class platforms, and parity is a primary design goal.

I’ll ...

[ Read More ]

Print the rspec-puppet catalog, courtesy of @willaerk

rnelson0, 1 month, 1 week | Source: RNELSON0

Sometimes, when you are writing an rspec-puppet test, you’re not sure exactly how the test should be written. You know that you want to test a resource with some extra attribute, but you may be describing the resource wrong, or using a bad regex to test the contents. Rspec-puppet will helpfully tell you when the […]

[ Read More ]

Rspec fixtures tip: symlink to other modules in your controlrepo

rnelson0, 1 month, 2 weeks | Source: RNELSON0

If you are writing rspec tests against your controlrepo, specifically your profile module, you need to set up your .fixtures.yml file to reference the other modules in your controlrepo. For example, here’s a list of the modules in the dist directory of a controlrepo: dist ├── eyaml ├── profile └── role If any of the […]

[ Read More ]

Exploring Puppet(4) modules design patterns

Anonymous, 1 month, 3 weeks | Source: Example 42

The enhancements coming with Puppet 4’s parser and type system are starting to appear in the modules ecosystem, still the need to preserve backwards compatibility is often slowing authors from fully embracing the powers and the elegance of the new Puppet language. When example42 announced the 4th generation of its Puppet modules and introduced a complete control repo, we decided to fully embrace Puppet 4 and ignore backwards compatibility. I, Alessandro, was struggling to find a sane way to put together the possibilities (and limitations) of Tiny Puppet, the structure of a full featured control-repo, and the usage of ...

[ Read More ]

Including additional resources in your rspec-puppet tests

rnelson0, 1 month, 4 weeks | Source: RNELSON0

I’m a strong advocate of creating unit tests for your puppet code with rspec-puppet. I’ve written a number of articles on tests before, so here’s one more. When you’re testing a class, sometimes there’s an expectation that it’s used alongside another class or resource. But your test is only against your class, so how do […]

[ Read More ]

OpsTheater 1.6: Open Source at last!

Walter Heck, 2 months, 1 week | Source: OlinData


We're excited to release OpsTheater 1.6 and with that release make the full code open source. We actually quietly released a few weeks back already, but life is busy and I didn't have time to write this blog post until today.

Why Open Source?

Since late 2015 we have been working internally on OpsTheater, a stack of tools we see used individually a lot in Enterprise environments. We decided to put them together so we could make our own lives easier. That turns out to work well. A simple OpsTheater deployment with GitLab, Icinga, ELK Stack and ...

[ Read More ]

A modern Puppet 4 control repo

Anonymous, 2 months, 1 week | Source: Example 42

A few weeks ago we introduced version 4 of example42 Puppet modules with a radical change in the reference repository layout. We’ve started to work on a Puppet 4 only compatible control-repo setup and we explored alternatives or optimizations to current best practices. The term “control-repo” is relatively recent in Puppet world but its function has been common for a while: a single place where we manage our whole Puppet setup: our data, our code, the public modules we use. Needless to say that a good stating control-repo is vital to a sane Puppet setup. What we present here ...

[ Read More ]

Converting and Formatting Data Like a Pro With Puppet 4.5.0

Henrik Lindberg (, 2 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 ]

Digging out data in style with puppet 4.5.0

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

In Puppet 4.5.0 there are a couple of new functions dig, then and lest that together with the existing assert_type and with functions makes it easy to do a number of tasks that earlier required conditional logic and temporary variables.

You typically run into a problem in programming languages in general when you are given a data structure consisting of hashes/arrays (or other objects), and you need to “dig out” a particular value, but you do not know if the path you want from the root of the structure actually exists.

Say you are given a hash ...

[ Read More ]

Hiera Node Classifier 0.7

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

A while ago I released a Puppet 4 Hiera based node classifier to see what is next for hiera_include(). This had the major drawback that you couldn’t set an environment with it like with a real ENC since Puppet just doesn’t have that feature.

I’ve released a update to the classifier that now include a small real ENC that takes care of setting the environment based on certname and then boots up the classifier on the node.


ENCs tend to know only about the certname, you could imagine getting most recent seen facts from PuppetDB etc ...

[ Read More ]