Planet Puppet

Your source of Puppet technical information

Scaling in Minutes (not Months) with Puppet Enterprise

Aliza Earnshaw, 16 hours, 10 minutes | Source: Puppet Labs

Treating infrastructure as code makes Heartland Payment Systems deployments uneventful, freeing ops to do more interesting & strategic projects.

[ Read More ]

Puppet 4.0 Data in Modules part II - Writing a Data Provider

Henrik Lindberg (, 2 days, 19 hours | Source: Puppet on the Edge

In Puppet 4.0.0 there is a new technology agnostic mechanism that makes it possible to provide default values for class parameters in modules and in environments. In the first post about this feature I show how it is used. In this second post I will show how to write and deliver an implementation of a data provider.

The information in this post is only relevant if you are planning to extend puppet with additional types of data providers - you do not need to learn all that is presented here to use the services the new data provider feature ...

[ Read More ]

Puppet 4.0 Data in Modules and Environments

Henrik Lindberg (, 2 days, 19 hours | Source: Puppet on the Edge

In Puppet 4.0.0 there is a new technology-agnostic mechanism for data lookup that makes it possible to provide default values for class parameters in modules and in environments. The mechanism looks first in the "global" data binding mechanism across all environments (i.e. the existing mechanism for data binding, which in practice means hiera, since this is the only available implementation). It then looks for data in the environment, and finally in the module.

The big thing here is that a user of a module does not have to know which implementation the module author has chosen - the ...

[ Read More ]

Setup Puppet Server on CentOS 7.0

Krishna Prajapati, 2 days, 22 hours | Source: OlinData


Puppet Server is a next-generation alternative to our current puppet master, which builds on the successful Clojure technology stack underlying products like PuppetDB. Puppet Server is an application that runs on the Java Virtual Machine (JVM) and provides the same services as the classic Puppet master application. It mostly does this by running the existing Puppet master code in several JRuby interpreters, but it replaces some parts of the classic application with new services written in Clojure.

Puppet Server is one of two recommended ways to run the Puppet master service; the other is a Rack server. Today they’re ...

[ Read More ]

Starting and Growing a Puppet User Group

Meg Hartley, 5 days, 15 hours | Source: Puppet Labs

Learn how to start and grow a Puppet User Group (PUG) in your own city from three experienced PUG organizers.

[ Read More ]

Cascadia IT Workshop: The Missing Manual for Getting Started with Command Line, Vim and Git

Tiffany Longworth, 6 days, 15 hours | Source: Puppet Labs

Don't feel comfortable with command line, vim or Git? Don't worry, you aren't alone. Tiffany Longworth talks about why she's giving a workshop on these tools at Cascadia IT in March.

[ Read More ]

Software Defined Networking with Arista and Puppet

Carl Caum, 1 week | Source: Puppet Labs

We’re happy to announce that Arista Networks now supports Puppet on their EOS platform. This is the latest vendor to launch support as part of our Puppet Supported Program, a certification program that enables our customers to extend the benefits of automation across networking and storage services.

[ Read More ]

Moving a service from Puppet to Docker

R.I. Pienaar, 1 week, 1 day | Source: R.I.Pienaar -

I’ve moved a number of my more complex infrastructure components from being Puppet managed to being Docker managed. There are many reasons for this the main one being my Puppet code is ancient and faced with a rewrite to be Puppet 4 like or just rethinking things, I’m leaning towards rethinking. I don’t think CM is solving the right problem for me for certain aspects of my infrastructure and new approaches can bring more value for my use case.

There’s a lot of posts around talking about Docker and concentrating on the image building side of ...

[ Read More ]

Building RHEL Vagrant Boxes with Vagrant-Builder

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

Vagrant is a great tool for development, but Red Hat Enterprise Linux (RHEL) customers have typically been left out, because it has been impossible to get RHEL boxes! It would be extremely elegant if hackers could quickly test and prototype their code on the same OS as they’re running in production.

Secondly, when hacking on projects that have a long initial setup phase (eg: a long rpm install) it would be excellent if hackers could roll their own modified base boxes, so that certain common operations could be re-factored out into the base image.

This all changes today.

Please ...

[ Read More ]

Foreman community survey results

Daniel Lobato (, 1 week, 2 days | Source: The Foreman: Blogs

February has been an intense month for the Foreman team. We gave a few talks at FOSDEM, got in touch with the community at cfgmgmtcamp, and overall had a great time.

After all of these events - we will go over them in the February newsletter - we are now ready to discuss what the results of the community survey have been. First and foremost, THANK YOU to everyone that replied. We are incredibly thrilled to hear how all of you are using the tool.

The reason why we launched the survey was essentially to understand what features should we focus on ...

[ Read More ]

Slides from My Puppet Camp Phoenix 2015 Presentation

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

I got a chance to speak to some local Puppet Users at this years Puppet Camp Phoenix held in Chandler, Arizona. My talk is titled Managing Files via Puppet: Let Me Count The Ways. This is the abstract: Configuration files abound. They are the primary way to get our systems to do the things we […]

[ Read More ]

Eyaml - Hiera Data Encryption

Krishna Prajapati, 2 weeks, 2 days | Source: OlinData

eyaml encryption

Hiera helps to seperate data from Puppet manifests. It let's us write and use reusable manifests and modules. Puppet classes can request the data they need from the hiera data store. Hiera reads environment specific key / value pairs (including passwords) from its own YAML files and parses them to Puppet. Puppet then populates templated configuration files and delivers them to the specified directories. However, Hiera still needs access to the passwords in order to pass them along to Puppet. If you store your passwords as plain text values, then there is still a problem of security. If someone was ...

[ Read More ]

Manage and purge root ssh authorized_keys in an ibox

admin, 2 weeks, 4 days | Source: Immerda Techblog

So far the ibox modules didn’t manage any authorized_keys for the user root, while the sshd module enforced that the root user can’t login using the password. We had the functionality already implemented in our internal code base, but it originated from the very early puppet days and it lacked several features, like purging non-managed keys or being able to selectively allow certain keys only on certain hosts.

With a recent commit to the ibox modules we introduced this functionality also on the ibox with all the missing features.

We introduced a new variable within the main ibox ...

[ Read More ]

The Puppet 4x Function API - part 2

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

In the first post about the 4x Function API I showed the fundamentals of the new API. In this post I am going to show how you can write more advanced functions that take a code block / lambda as an argument and how you can call this block from Ruby. This can be used to create your own iterative functions or functions that make it possible to write puppet code in a more function oriented style.

Accepting a Code Block / Lambda

A 4x function can accept a code block / lambda. You can make it required by calling required_block_parameter in the ...

[ Read More ]

scanf update

Anonymous, 3 weeks, 1 day | Source: david.log

I've just created a PR implmenting the scanf function for the classical parser. Watch it or the ticket for the merge. According to Henrik it should be just in time for 3.7.5 release.

Henrik also pointed me at the nice fact that the future parser will auto-coerce (fail-safely) strings to numbers in arithmetic expressions. This means $var + 0 will be either the numerical value of $var or a compile error.

[ Read More ]

2014 vs 2015 interest in Open Source Configuration Management

Kris Buytaert, 3 weeks, 2 days | Source: Everything is a Freaking Puppet problem

A couple of people asked me to results of the survey of the 2015 vs 2014 Configuration Management Camp room interrests.

This is a bunch of 350 last year and 420 people telling us what tools they are interested in so we can map the right roomsizes to the communities.

2014 :


Enjoy.. but remember there's Lies, Damn Lies and Statistics ..
PS. this is a mostly European Audience .

[ Read More ]

Introducing: Silent counter

jamesjustjames, 3 weeks, 2 days | Source: The Technical Blog of James

You might want to write code that can tell how many iterations have passed since some action occurred. Alternatively, you might want to know if it’s the first time a machine has run Puppet. To do these types of things, you might wish to have a monotonically increasing counter in your Puppet manifest. Since one did not exist, I set out to build one!

The code:

If you just want to try the code, and skip the ramble, you can include common::counter into your manifest. The entire class is part of my puppet-common module:

git clone https://github ...

[ Read More ]

Puppet Module Skeleton

Anonymous, 3 weeks, 4 days | Source: david.log

At the Puppet Contributor Summit 2015 Gent I rediscovered @garethr's wonderful puppet-module-skeleton. It plugs into the puppet module face and enables you to use puppet module generate myname-modulename and get a working sekelton with all testing goodies enabled.

Sadly there were some bring-up issues, which he now started to adress, adding a travis job to keep it that way. More help is always welcome to improve this resource.

Advanced usage

Gareth's tool is great to create a new module. For working with existing modules, modulesync is the way to go. This tool can be configured with a set ...

[ Read More ]

Migrating to puppet future parser

Anonymous, 3 weeks, 5 days | Source: david.log

The future parser in puppet is the compatibility shim to use before moving to Puppet 4.0, whose release is imminent. The future parser in 3.7 allows us to run the stable version with the parser of the new version, making manifests and modules ready for a seamless upgrade. Here I'll describe the steps I needded to make this move.


To make the transition possible and easy, I've two goals. first, I want to make sure that I change as little as possible. This avoids trying too much in a single pass of the codebase, which ...

[ Read More ]

Getting your code ready for Puppet 4

Raphaël Pinson, 3 weeks, 5 days | Source: Camptocamp Blog

Puppet 4 is just around the corner and it will bring a good deal of changes. Some of them will require to adapt or fix your code, as outlined at Puppetcamp Amsterdam last week by Martin Alfke:

Power of Puppet 4 from Martin Alfke

Now the problem is, “How do you find the code that needs fixing, and how do you fix it easily?”

This is where puppet-lint chimes in!

At Camptocamp, we have written a series of puppet-lint plugins to ease the transition to the future parser – and eventually, Puppet 4.

Future parser plugins

Find out potential problems in ...

[ Read More ]