Planet Puppet

Your source of Puppet technical information

The Type Hierarchy and Scalars

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

The Type Hierarchy

In the previous post about the Puppet 3.5 experimental feature Puppet Types I covered the rationale behind having a type system, and exemplified by using a handful of types such as Integer, and Array to achieve simple tasks.

This time, I am going to present an overview of all the types in the type system and present the most fundamental type - the Scalar in more detail.

The Type Hierarchy

|- Scalar
| |- Numeric
| | |- Integer[from, to]
| | | |- (Integer with range inside another Integer)
| | |
| | |- Float[from, to]
| | | |- (Float with range inside another Float)
| |
| |- String
| | |- Enum[*strings]
| | |- Pattern[*patterns]
| |
| |- Boolean ...

[ Read More ]

Puppet OpenStack plans for Liberty

Emilien Macchi, 6 days, 10 hours | Source: eNovance Puppet Blog

Our Vancouver week just ended and I think it was a very productive Summit for the Puppet OpenStack folks.
This blog post summarizes what we did this week, and what we plan for the next release.


Releases and master branch policy

So we officially decided to support the latest version of OpenStack provided by upstream packages (Ubuntu UCA and CentOS7 RDO) in our modules master branch. That means if you submit a change in the module, it will have to pass our integration testing (running Beaker).


  • if your change update configuration to support ...

[ Read More ]

Separation of Concerns: How Hiera Helps

Reid Vandewiele, 1 week | Source: Puppet Labs

Hiera separates data from your Puppet code, making it possible to use the same generic code over and over again. Eighty percent of the puppet code most organizations use tends to be generic; only the data varies.

[ Read More ]

Huawei Joins the Puppet Supported Program

Carl Caum, 1 week, 1 day | Source: Puppet Labs

Puppet Enterprise will now be the native configuration management solution for Huawei switches, making it easy to configure your entire data center with a single tool.

[ Read More ]

Puppet Labs CFO Bill Koefoed Wins Portland Business Journal CFO of the Year

Justin Dorff, 1 week, 2 days | Source: Puppet Labs

Bill Koefoed was named CFO of the Year in the medium company category, along with four other CFOs from Portland companies across different industries.

[ Read More ]

The Puppet 4x function API

Henrik Lindberg (, 1 week, 3 days | 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 ]

Diversity Initiatives for PuppetConf 2015

Kara Sowles, 2 weeks | Source: Puppet Labs

Read details of our diversity program at PuppetConf 2015: 18 free tickets to underrepresented groups, travel sponsorship for qualifying speakers, and more.

[ Read More ]

Hiera-fy your Hiera setup

rnelson0, 2 weeks, 1 day | Source: RNELSON0

In 2014, we set up our puppet environment and we’ve spent the first half of 2015 improving the configuration. In that time, we installed hiera, were introduced to it through the role/profile pattern, focused on separating the data from the code and moving it into hiera, and most recently on an improved controlrepo that modified […]

[ Read More ]

Software Factory Update

Matthieu Huin, 2 weeks, 2 days | Source: eNovance Puppet Blog

We are proud to announce the first stable release of Software Factory. We have been operating a deployment that is hosting some projects along SF itself for a long time already. And since the platform has been proven stable enough for us, and consistently upgraded without much outage, it’s a good opportunity to look back at what we built and where we are now.

Key Features

Included components

The Software Factory stack includes the well known Jenkins (job automation) and Gerrit (code review) services as well as Zuul (gating system) and makes them all work together. In addition the ...

[ Read More ]

Configuring an R10k webhook on your Puppet Master

rnelson0, 3 weeks, 5 days | Source: RNELSON0

Now that we have a unified controlrepo, we need to set up an r10k webhook. I have chosen to implement the webhook from zack/r10k. There are other webhooks out there – I’m a huge fan of Reaktor – but I chose this because I’m already using this module and because it is recommended by Puppet […]

[ Read More ]

Puppet Tutorials: Check out Puppetinabox instead

rnelson0, 3 weeks, 6 days | Source: RNELSON0

Quick note: I am deprecating my individual repos – role, profile, hiera etc – that I have used throughout the Puppet series. I will be doing representative work within the Puppetinabox repositories, mostly the controlrepo. I’m not sure when I’ll shut down the repos entirely, not until after I update old links, of course. Some […]

[ Read More ]

Puppet Enterprise 3.8 Installation - steps and fixes

Martin Alfke (, 4 weeks | Source: Unix Freak

The new Puppet Enterprise Version 3.8 is out since a couple of days.
It now supports Puppet 4 officially.
On mailinglist people were telling about installation issues.
This is a summary with fixes for SLES 11 and 12, CentOS 6 and 7, Ubuntu 12.04 and 14.10, Debian 6 and 7.
Seems as if Debian 8 is still to new for PE 3.8.


this is a summary of fresh PE 3.8.0 installation (no update) on SLES 11 and 12, Ubuntu 14 and 12, Debian 7 and CentOS 6 and 7

All machines were installed ...

[ Read More ]

Preventing Git-astrophe – Judicious use of the force flag

rnelson0, 4 weeks | Source: RNELSON0

I’d like to tell a tale of a git-astrophe that I caused in the hope that others can learn from my mistakes. Git is awesome but also very feature-ful, which can lead to learning about some of those features at the worst times. In this episode, I abused my knowledge of git rebase, learned how the […]

[ Read More ]

Puppet Enterprise on SLES

Martin Alfke (, 1 month | Source: Unix Freak

SLES and OpenSuSE are supported operatingsystems by Puppet.
But I always saw trouble when installing either the Puppet Master or the Agent on SLES.

One needs to take care on locales, paranoid umask, required packages.

1. locale

Standard SLES installation will set locale to POSIX.
This will break UTF-8 compatibility with some Puppet Modules.

Instead: set locale to en_US.utf8 in your .bashrc file.

2. paranoid umask

The paranoid umask (0002) will cause severe trouble on SLES.
Please lower the security constrints for umask.

3. required packages

When running SLES 11 one will see an error message regarding a missing ...

[ Read More ]

Sharing code between puppet providers

Patrick Schönfeld, 1 month | Source: just-imho: tech

So you’ve written that custom puppet type for something and start working on another puppet type in the same module. What if you needed to share some code between this types? Is there a way of code-reuse that works with the plugin sync mechanism?

Yes, there is.

Puppet even has two possible ways of sharing code between types.

Option #1: a shared base provider

A provider in puppet is basically a class associated with a certain (puppet) type and there can be a lot providers for a single type (just look at the package provider!). It seems quiet natural ...

[ Read More ]

Docker containers in Oh-My-Vagrant

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

The Oh-My-Vagrant (omv) project is an easy way to bootstrap a development environment. It is particularly useful for spinning up an arbitrary number of virtual machines in Vagrant without writing ruby code. For multi-machine container development, omv can be used to help this happen more naturally.

Oh-My-Vagrant can be very useful as a docker application development environment. I’ve made a quick (<9min) screencast demoing this topic. Please have a look:

If you watched the screencast, you should have a good overview of what’s possible. Let’s discuss some ...

[ Read More ]

Resources about writing puppet types and providers

Patrick Schönfeld, 1 month, 1 week | Source: just-imho: tech

When doing a lot of devops stuff with Puppet, you might get to a point, where the existing types are not enough. That point is usually reached, when a task at hand becomes extraordinary complex when trying to achieve it with the Puppet DSL. One example of such a case could be if you need to interact with a system binary a lot. In this case, writing your own puppet type might be handy.

Now where to start, if you want to write your own type?

Overview: modeling and providing types

First thing that you should know about puppet types ...

[ Read More ]

Atomic Deployment of Puppet environments

Robin Bowes, 1 month, 2 weeks | Source:

In a previous post, I described how to describe puppet environments, roles, and profiles, as modules and how to use r10k and librarian-puppet to deploy them.

One possible problem with deploying to the puppet environment directory directly is that the librarian-puppet run can take some time and there is a possibility that puppet may attempt to compile a catalogue in an incomplete or inconsistent environment. One way to overcome this is to deploy the environments into a new directory, create a symlink, and move the symlink atomically into place.

This would look something like this:

cd /etc/puppet/envs
# create ...

[ Read More ]

Recursive deployment of puppet environments with r10k and librarian-puppet

Robin Bowes, 1 month, 2 weeks | Source:

By treating roles and profiles as puppet modules, we can use r10k and librarian-puppet to manage the deployment of our puppet code into our puppet environements.

I shall assume that puppet is configured to use to use directory environments and that the environment path is $confdir/environments (ie. the default location). I also assume that both r10k and librarian-puppet are installed and in the path.

You should also understand and embrace the role-profile-module pattern, first described by Craig Dunn and subsequently by Adrian Thebo and Gary Larizza. Quoting Gary:

  • Roles abstract profiles
  • Profiles abstract component modules
  • Hiera abstracts configuration data ...

[ Read More ]

Sharing dev environments with Oh-My-Vagrant

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

With Oh-My-Vagrant (omv) you can set up a dev environment in seconds. (Read the omv introduction if you’ve never used it before!) Since everything is defined in a single omv.yaml file, it is easy to share your cluster prototype with a friend! The one missing feature was associating code with this config file. This is now possible! Let me show you how it works…

In the omv.yaml file there is an extern variable. It is a list of each external repository which you’d like to include. Each element in this list is a hash of key ...

[ Read More ]