Planet Puppet

Your source of Puppet technical information

Puppet 4.0 Data in Modules and Environments

Henrik Lindberg (, 14 hours, 42 minutes | 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 module's data, then the environment's, and finally 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).

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

[ Read More ]

The Puppet 4x function API

Henrik Lindberg (, 18 hours, 29 minutes | Source: Puppet on the Edge

In Puppet 4.0.0 there is a new API for writing Ruby functions that extend the functionality of the Puppet language. This API is available in the 3.7.x versions of Puppet when using --parser future, so you can try out this functionality today.

The new 4x API for functions was created to fix problems and add missing features in the 3x API:

  • The function runs as a method on Scope (and has access to too much non-API)
  • Undefined arguments are given to the function as empty strings, but as a :undef Symbol if undefined values are given ...

[ Read More ]

Linda Rising: Fearless Change and Patterns for Introducing New Ideas

Kent Bye, 1 day, 10 hours | Source: Puppet Labs

Linda Rising is the co-author of the book Fearless Change: Patterns for Introducing New Ideas. She's studied change management within organizations for over 20 years, and discovered 48 patterns of behavior that are associated with successful change. In this podcast, Linda covers the importance of:

[ Read More ]

9 Practices to Launch Continuous Delivery in Your Organization

Aliza Earnshaw, 2 days, 11 hours | Source: Puppet Labs

Continuous delivery requires tools, processes and practices to let you release software more frequently, with fewer errors — just what every business needs. Here's a list of what you need for continuous delivery success.

[ Read More ]

Puppet Acceptance Testing on Travis CI

Mickaël Canévet, 2 days, 17 hours | Source: Camptocamp Blog

Camptocamp is developing lots of Puppet modules and is using more and more often acceptance tests with beaker to prevent regressions. Beaker is a powerful framework to add acceptance tests to Puppet modules. It allows to use all sorts of hypervisor backends (docker, vagrant, aws, openstack, etc.). Unfortunately, it is not (yet) possible to launch specific docker containers or vagrant boxes on Travis CI. Since Camptocamp has its own OpenStack private cloud, we had the idea to use Beaker’s OpenStack hypervisor to spawn VMs on our own Openstack infrastructure from Travis CI, in order to automate acceptance tests runs ...

[ Read More ]

Network Automation: Configuration Management Isn’t Just for Compute Servers

Mike Coleman, 3 days, 12 hours | Source: Puppet Labs

Automation is key to managing compute servers effectively. Why not extend automation to storage and networking devices? Puppet Labs is doing just that.

[ Read More ]

Featured Community Member: Chris Portman

David Lutterkort, 4 days, 12 hours | Source: Puppet Labs

Learn about the contributions that Chris Portman has made to Razor, an open source tool for provisioning servers.

[ Read More ]

The Puppet 4x Function API - part 2

Henrik Lindberg (, 6 days, 1 hour | 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 ]

The Puppet Type System Blog Posts

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

Building the common ground – a basic iBox

admin, 6 days, 11 hours | Source: Immerda Techblog

In the previous post we introduced the building blocks for the iBox, which can also be used for local development. As an example we brought up the CentOS 7 integration into our environment. So how does this work?


We run a couple of services and they all run on either one or multiple systems. So, if we talk about systems in our setup, we talk about many VirtualMachines all fulfilling some kind of role or – as we call it – type. VMs give us for example a way of separation and isolation, as we don’t want to keep mailboxes ...

[ Read More ]

Introducing iBox – stemcells

admin, 6 days, 15 hours | Source: Immerda Techblog

As a lot of people might know: We are happy puppet users @ immerda for ages. Also since the very beginning, we try to publish as much as possible of our puppet work and collaborate with others on improving these puppet modules and make them available and (most important!) useful for others as well.


As (for obvious reasons) we can’t publish the whole configuration of our infrastructure, we went with a dual-modules setup: public and private (site-specific) modules. While this was fine in the beginning and it let us at least publish the common ground for our infrastructure, it ...

[ Read More ]

Puppet Tricks - static resource dispatch

Anonymous, 1 week, 3 days | Source: david.log

Static Resource Dispatch

Something I've already used to good effect is putting data for create_resources into hiera to configure customer stuff. My prime example is this hosting module. On the host where tihs is running, I'm loading the data from a YAML file and pass it on the the customer define. This allows me to configure a customer's domains, databasesr, P.O. boxes and other stuff from a private yaml like this:

    type: owner
    admin_user: david-dasz
    admin_fullname: "David Schmitt"
    db_password: geheim1
        serial: 2014021900
          - "  A ...

[ Read More ]

Introducing Tiny Puppet

Anonymous, 1 month | Source: Example 42

Tiny Puppet is a single Puppet module that can replace virtually any other single application module.

Consider it as another Puppet abstraction layer, where we abstract the interface to the management of whole applications.

I’ve been thinking about a similar solution for years, since when I started to create reusable modules based on a common template (all the “NextGen” version of Example42 modules).

Now it’s reality.

We usually deal with different kind of modules:

A- Public modules that manage single applications (apache, openssh, redis …)

B - Custom local modules that manage applications in the way we need

C - Public ...

[ Read More ]

Puppet 4 is around the corner, this is whats new

walterheck, 1 month | Source: OlinData

Over the past few months we have been getting more and more information about Puppet 4, as well as the vast improvements to Puppet Enterprise. The array of new features and major changes is gigantic. A lot of these changes are very welcome and I'm excited to see what they will bring to the Puppet world. On the other hand, I'm also a bit afraid. Here's a non-exhaustive list of changes.

DISCLAIMER: This post is completely based on hear-say, speculation and informal information. None of it is official, so don't send me any death threats if ...

[ Read More ]

A Small Addition to Deploy to Noop

Anonymous, 1 month | Source: Differently Ambitious

Just a quick update to my previous post about the ‘Deploy to Noop’ technique for Puppet.

In the original version of the code in the our demo environment we had something like this in our manifests/site.pp:

filebucket { 'main':
  server => $::servername,
  path   => false,

File { backup => 'main' }

$force_noop = hiera('force_noop')
unless false == $force_noop {
  notify { "Puppet noop safety latch is enabled in site.pp!": }


As a reminder, the key bit is the callout to Hiera to resolve the value of the ‘force_noop’ variable. If it resolves to anything other than the boolean value of False we will enable ...

[ Read More ]


Hendricus Kramer, 1 month, 1 week | Source: Puppet Blog

All your Puppet books for just $5

Happy Xmas! Take advantage of #Packt5Dollar this Holiday

Go to and search for puppet and find all you need know about puppet!

5 dollar Packt Publishing

[ Read More ]

Book review: Puppet Essentials by Felix Frank

Hendricus Kramer, 1 month, 2 weeks | Source: Puppet Blog

This book is a very good read for people with absolutely no Puppet experience.

You will learn all the basics of Puppet and at the end of the book you can even write your own (basic+) puppet modules.

Puppet Essentials starts with an introduction about the basic elements of Puppet.
This introduction will give you a very good impression about the power of Puppet and what it can do for your infrastructure.
Easy readable examples are making it easy to learn how to create your own modules.

All examples within the book can be downloaded, so even when you’re ...

[ Read More ]


Anonymous, 1 month, 2 weeks | Source: david.log

Tonight I'll be talking at the Vienna System Architects Meetup December Edition about holistic systems testing with Beaker.

Here're the tools and repos I'll be talking about:

[ Read More ]

Call for papers for ConfigManagementCamp and FOSDEM Config Management room

walterheck, 2 months, 1 week | Source: OlinData

One of my favorite conferences in 2014 was the first edition of Config Management Camp, back in February. A very rare occasion where we had major contributors and users from each of the current FOSS Configuration Management tools in a single building.  
We had three excellent keynotes in historical order by Mark Burgess, who brought us CFEngine, Luke Kanies, who brought us Puppet, and Adam Jacob who brought us Chef. None of them spoke about their own tool but instead they all discussed larger topics. Luke even did his keynote from the top of his head without any slides while ...

[ Read More ]

Testing OpsTheatre - Part One

Raj Kissu, 2 months, 2 weeks | Source: OlinData

Two months back OlinData announced OpsTheatre, a pluggable operations dashboard that runs on Node.js. Our in-house dev team believes this tool will be key in eliminating a growing issue in the DevOps community - the duplication of Operations Management tools. On top of that, we open sourced the project as we believe community support and involvement will be integral in the realization, manifestation and shaping of this vision.

Having released it to the public as soon as we were done with the Minimum Viable Product (MVP), I am glad to see that certain parties have started taking interest in this ...

[ Read More ]