Planet Puppet

Your source of Puppet technical information

Get Results: Why Every CFO Should Advocate for DevOps

Bill Koefoed, 4 hours, 59 minutes | Source: Puppet Labs

IT is the manufacturing of this century, and DevOps is today’s continuous improvement movement. Get on board to maximize throughput and profits.

[ Read More ]

Where’s Puppet Labs? September Edition

Briana de Jong, 1 day, 5 hours | Source: Puppet Labs

Puppet Labs employees are on the road in September, traveling the world to top tech conferences. Here's where you'll find us this month.

[ Read More ]

More PuppetConf Goodness: Join Us for Workshops & Demos

molly, 5 days, 3 hours | Source: Puppet Labs

PuppetConf 2014 promises 100+ sessions, including hands-on workshops and product demos.

[ Read More ]

New: Nightly Package Repositories for Open Source Puppet

Eric Sorenson, 5 days, 23 hours | Source: Puppet Labs

We're improving our continuous delivery process at Puppet Labs, putting out new Puppet packages more frequently for your feedback, so we can get higher-quality releases to you faster.

[ Read More ]

Rough data density calculations

jamesjustjames, 6 days, 10 hours | Source: The Technical Blog of James

Seagate has just publicly announced 8TB HDD’s in a 3.5″ form factor. I decided to do some rough calculations to understand the density a bit better…

Note: I have decided to ignore the distinction between Terabytes (TB) and Tebibytes (TiB), since I always work in base 2, but I hate the -bi naming conventions. Seagate is most likely announcing an 8TB HDD, which is actually smaller than a true 8TiB drive. If you don’t know the difference it’s worth learning.

Rack Unit Density:

Supermicro sells a high density, double-sided 4U server, which can hold 90 ...

[ Read More ]

Purging ssh_authorized_keys with Puppet

blkperl, 1 week, 2 days | Source: Puppet a day

Purging SSH authorized keys used to be the number one top-voted ticket in the Puppet issue tracker. A community member Felix Frank has solved the issue by adding a purge_ssh_keys parameter to the User resource. The change was merged into the master branch in March 2014 and was released in Puppet 3.6.0 and with some additional bug fixes in Puppet 3.6.2.

Let’s take at the look at the code to enable this feature. Here we have a user resource for the root user. All we need to do is set the purge_ssh_keys attribute to true ...

[ Read More ]

puppet-lint 1.0.0

Anonymous, 2 weeks | Source: Tim Sharpe

It's been a long time coming but I'm happy to announce the release of puppet-lint 1.0.0!

Along with a bunch of bugfixes and a rewrite of most of the code, there's some (hopefully) exciting new features in this release.

Automatic fixing of errors

Previewed in the 0.4.0 pre-release, simple problems can now be automatically fixed by puppet-lint (some problems require complex refactoring and so puppet-lint won't attempt anything on your behalf).

In 1.0.0, problems detected by the following checks can be automatically fixed by running puppet-lint with --fix:

  • slash_comments
  • star_comments ...

[ Read More ]

Hybrid management of FreeIPA types with Puppet

jamesjustjames, 1 month, 1 week | Source: The Technical Blog of James

(Note: this hybrid management technique is being demonstrated in the puppet-ipa module for FreeIPA, but the idea could be used for other modules and scenarios too. See below for some use cases…)

The error message that puppet hackers are probably most familiar is:

Error: Duplicate declaration: Thing[/foo/bar] is already declared in file /tmp/baz.pp:2; 
cannot redeclare at /tmp/baz.pp:4 on node

Typically this means that there is either a bug in your code, or someone has defined something more than once. As annoying as this might be, a compile error happens ...

[ Read More ]

From shell to Puppet

Daenney, 1 month, 2 weeks | Source: Puppet a day

It comes up every now and then in #puppet on IRC. Someone comes in, usually fairly new to Puppet, and pastes the link to a Gist with a manifest they’re having trouble with.

When you click on that link and look at it you’re usually greeted by Puppet code trying to replicate a shell script. Everything is ordered, notify/subscribes aren’t used and a ton of exec’s are in place that take care of restarting the managed services every single time.

The problem here is two-fold; people generally don’t bother to read the documentation or ...

[ Read More ]

Learning Puppet at the Puppet Pizza Place part 2

Anonymous, 2 months | Source: People & Software

#Learning Puppet at the Puppet Pizza Place In this set of blog posts, I will teach you the base concepts of the [puppet DSL]( Most of the time Puppet is taught within the context of IT configuration management. I've chosen not to do so. I've chosen baking pizza's as the learning environment. It helps less technical people, like IT managers, for example, to get the concepts of Puppet. Checkout part 1 of the series [here](/2014/06/26/pietros-puppet-pizza-place-1/)) ## More pizza's.... Last time Pietro experimentented with Miss Piggy the pizaa backing robot ...

[ Read More ]

Extending Puppet

Anonymous, 2 months | Source: Example 42

Last November I was contacted by Llewellyn Rozario, Acquisition Editor from Packt Publishing, asking me to write a book about Puppet.

That has been an unexpected and welcomed surprise, I’ve never written a book and hardly considered the opportunity to write one, but the idea seemed too much appealing to be dismissed.

The editor requested a book about how to extend Puppet functionalities with Ruby code, but in my own opinion there where some more interesting topics to talk about.

I proposed a completely revised table of contents and a different title.

I wanted to write about all the ...

[ Read More ]

Learning Puppet at the Puppet Pizza Place

Anonymous, 2 months, 1 week | Source: People & Software

#Learning Puppet at the Puppet Pizza Place In this set of blog posts, I will teach you the base concepts of the [puppet DSL]( Most of the time Puppet is taught within the context of IT configuration management. I've chosen not to do so. I've chosen baking pizza's as the learning environment. It helps less technical people, like IT managers, for example, to get the concepts of Puppet. ## Pietro's Puppet Pizza Place Pietro was worn out. He'd had a very busy day at his pizza place. Business was going well. Too ...

[ Read More ]

Rethinking modules - Part 2

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

In the first part of this blog series I expressed my opinions about these points:

  • The general reusability features a component module should have
  • The difference between component and higher abstraction modules
  • What are the challenges we have to face when we want to make reusable higher abstraction modules

I also underlined two fundamental issues that I think are still open in the Puppet modules ecosystem:

  • Patterns to extend reusability of higher abstraction layer modules
  • Standardization in the component application modules

Some preliminary exploration on the first topic has been expressed in Part 1. There’s much more to do ...

[ Read More ]

Tackling Windows with Puppet!!

Choon Ming Goh, 2 months, 2 weeks | Source: OlinData

And I'm back!! It has been a long 3 months for me. For those who is not aware, I've been in the UAE working on-site for a client project. It is a very challenging project for a *nix Systems Administrator like me because the project was to automate a large number of Windows applications for a client. Windows! The first thing that came into my mind was the horror of using Windows but at the same time I'm rather excited because it is an uncharted domain for both me and OlinData as we've never work with ...

[ Read More ]

Optionally Typed Parameters

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

Optionally Typed Parameters

And now, the latest entry in the series about the new Puppet Type System introduces the capability to optionally type the parameters of defines, classes, lambdas and EPP template parameters.

There are also some new abilities and changes to the type system that I will cover in this post.

Optionally Typed Parameters

Writing high quality puppet code involves judicious use of type checking of given arguments. This is especially important when writing modules that are consumed by others. Anyone having written a serious module knows that it is a chore to not only deal with all of ...

[ Read More ]

The Puppet Type System Blog Posts

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

The Puppet Type System

In Puppet 3.5's future parser there is a new type system that makes it much easier to write validation logic for parameters (and much more). I have written a series of blog posts about the new type system - and this post is just an index to the series.

It works best if they are read in the order they were published:

[ Read More ]

EC2 provisioning using Foreman

Ohad Levy (, 2 months, 2 weeks | Source: The Foreman: Blogs

One of foreman goals, is to provide a simple and familiar process to provision systems, regardless of where they are located.

We've now added the ability to provision systems in EC2, alongside with the existing virtualization providers such as RHEVM, libvirt, VMWare etc.

In this blog, I'll try to describe step by step what is required in order to provision a new instance in EC2.


  • You should be using a recent version of foreman, either directly from git, or using the nightly, see for git instruction, or use the debian, redhat or fedora nightly packages.
  • Have a ...

[ Read More ]

Getting foreman search results into your Puppet manifest

Ohad Levy (, 2 months, 2 weeks | Source: The Foreman: Blogs

Lets say you want to know all of the hosts your monitoring host need to monitor, or maybe, the hosts to which your database needs to allow access to, traditionally, the solution to this problem was using Puppet storeconfigs.

In this blog post, I mentioned how you could utilize foreman search language to get customized results.

While storeconfigs is a great solution, and if it works for you, by all means, please do keep using it, but in this post I would like to show you how to use Foreman to query for similar data + foreman data as well.

Lets ...

[ Read More ]

Securely managing secrets for FreeIPA with Puppet

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

Configuration management is an essential part of securing your infrastructure because it can make sure that it is set up correctly. It is essential that configuration management only enhance security, and not weaken it. Unfortunately, the status-quo of secret management in puppet is pretty poor.

In the worst (and most common) case, plain text passwords are found in manifests. If the module author tried harder, sometimes these password strings are pre-hashed (and sometimes salted) and fed directly into the consumer. (This isn’t always possible without modifying the software you’re managing.)

On better days, these strings are kept separate ...

[ Read More ]

Jenkins, Puppet, Graphite, Logstash and YOU

Kris Buytaert, 3 months | Source: Everything is a Freaking Puppet problem

This is a repost of an article I wrote for the Acquia Blog some time ago.

As mentioned before, devops can be summarized by talking about culture, automation, monitoring metrics and sharing. Although devops is not about tooling, there are a number of open source tools out there that will be able to help you achieve your goals. Some of those tools will also enable better communication between your development and operations teams.

When we talk about Continuous Integration and Continuous Deployment we need a number of tools to help us there. We need to be able to build reproducible ...

[ Read More ]