Planet Puppet

Your source of Puppet technical information

Puppet Training from the Comfort of Your … Well, from Anywhere!

Erin Buckley, 4 days, 15 hours | Source: Puppet Labs

Expand your Puppet skills with our new economical, convenient virtual training classes, including use of Hiera, Puppet module and infrastructure design.

[ Read More ]

Resources about writing puppet types and providers

Patrick Schönfeld, 5 days, 21 hours | 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...

[ Read More ]

Docker containers in Oh-My-Vagrant

jamesjustjames, 5 days, 22 hours | 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 ]

Gene Kim on Being a Change Agent in IT & insights from DevOps Enterprise Summit

Kent Bye, 1 week, 1 day | Source: Puppet Labs

Note: This podcast was originally posted on November 6th, and we're reposting it to our main podcast channel.

Welcome to the Conversations with Puppet Labs podcast. We'll be talking with folks in the industry about a variety of topics that affect IT operations.

[ Read More ]

Simplify Managing Docker with Puppet

Gareth Rushgrove, 1 week, 2 days | Source: Puppet Labs

With the impending release of Puppet Enterprise 3.8, we will be adding support for managing Docker and Docker containers.

For those of you who haven't yet had the chance to take a look at Docker, it enables apps to be quickly assembled from multiple components and eliminates some of the friction between development, QA, and production environments. With new Docker Platform tools Swarm, Machine and Compose, it is a growing component of modern infrastructure.

[ Read More ]

Improved r10k deployment patterns

rnelson0, 1 week, 3 days | Source: RNELSON0

In previous articles, I’ve written a lot about r10k (again, again, and again), the role/profile pattern, and hiera (refactoring modules and rspec test data). I have kept each of these in a separate repository (to wit: controlrepo, role, profile, and hiera). This can also make for an awkward workflow. On the other hand, there is […]

[ Read More ]

Welcome to Puppet Collections

Mike Stahnke, 1 week, 3 days | Source: Puppet Labs

Open Source Puppet 4 includes the new Puppet Collections: package repositories whose components are guaranteed to work together.

[ Read More ]

Atomic Deployment of Puppet environments

Robin Bowes, 2 weeks, 1 day | 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, 2 weeks, 1 day | 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, 2 weeks, 3 days | 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 ]

puppet vmwaretools module 4.9.0

Michael Arnold, 2 weeks, 4 days | Source: The Razor's Edge

Today, I am releasing a feature update to my VMware Tools Operating System Specific Packages module to the Puppet Forge. The primary feature is support for the Ubuntu operatingsystem.  Ubuntu support has been lacking throughout the life of this module.  This Puppet module now covers all guest operating systems supported by VMware’s OSPs. I have […]

[ Read More ]

puppet openvmtools module 0.2.0

Michael Arnold, 2 weeks, 4 days | Source: The Razor's Edge

I have released a new Puppet module to manages the installation and configuration of the Open Virtual Machine Tools for VMware guests to the Puppet Forge.  From VMware’s documentation: open-vm-tools is the open source implementation of VMware Tools and consists of a suite of virtualization utilities that improves the functionality, administration, and management of virtual […]

[ Read More ]

puppet network module 3.4.0

Michael Arnold, 2 weeks, 4 days | Source: The Razor's Edge

Recently, I have delivered a long-awaited release of my Red Hat network module to the Puppet Forge.  Numerous pull requests were merged including: Addition of LINKDELAY option support to network::if::static and network::if::dynamic. (Hiroyuki Nakamura) Allow setting DHCP_HOSTNAME on dynamic interfaces. (Joshua M. Keyes) The addition of IPv6 support for global, static, bridged, and bond configurations. […]

[ Read More ]

Puppet Test Driven Development part III: create a custom type and provider

Mickaël Canévet, 1 month | Source: Camptocamp Blog

Now that we can install our OpenLDAP server and ensure that it is running, we want to be able to manage OpenLDAP databases.
For that, we will create an OpenLDAP Puppet type and a provider to manage databases using OpenLDAP’s live configuration API. We will do all this using TDD, of course!

Write the acceptance tests

First, let’s create an acceptance test in spec/acceptance/openldap_database_spec.rb for our new type “openldap_database”

Write the custom type

Let’s write a custom Puppet type that has these properties:

  • is ensurable
  • has suffix as namevar
  • has backend and directory properties ...

[ Read More ]

Why not Puppet?

rnelson0, 1 month | Source: RNELSON0

Alternatively: Common mistakes made when adopting Puppet. I love me some Puppet, and anyone who knows me will tell you I’ll talk about it and configuration management as long as you let me. However, sometimes it’s not the answer people expect it to be. Is it even the right tool? As a counterpoint to Why […]

[ Read More ]

Puppet Test Driven Development: part II – Create a more complex class and refactor it

Mickaël Canévet, 1 month, 1 week | Source: Camptocamp Blog

Now that we have all our setup done and a functional class to manage the OpenLDAP client part, let’s deal with a more complex part: the server class.

Write the acceptance tests

Let’s write the acceptance tests to code the behavior we want in spec/acceptance/openldap__server_spec.rb:

openldap::server, the server is listening on port 389 and that slapd service is running and enabled at boot time. No need to run it for now because it will obviously fail as the openldap::serverdoes not exist yet.

Write the unit tests

Let’s write the unit tests ...

[ Read More ]

Fancy git aliases and git cherryfetch

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

Here are two quick git tricks that I’ve added to my toolbox lately…

I wanted to create a git alias that takes in argv from the command, but in the middle of the command. Here’s the hack that I came up with for the [alias] section of my ~/.gitconfig:


    # cherryfetch fetches a repo ($1) / branch ($2) and applies it rebased!
    # the && true at the end eats up the appended args
    cherryfetch = !git fetch "$1" "$2" && git cherry-pick HEAD..FETCH_HEAD && true


The git alias is called “cherryfetch“. It starts with an exclamation point (!) which means it’s ...

[ Read More ]

puppet cloudera module 3.0.0

Michael Arnold, 1 month, 1 week | Source: The Razor's Edge

This is a major release of my Puppet module to deploy Cloudera Manager. The major change is that razorsedge/cloudera now supports the latest releases of dependent modules. razorsedge/cloudera was lagging behind due to the need to support Puppet Enterprise 3.0.1 installations and only recently did those installations finally upgrade. Notable changes are: The puppetlabs/postgresql dependency […]

[ Read More ]

Puppet Test Driven Development: Part I – Create a simple class

Mickaël Canévet, 1 month, 2 weeks | Source: Camptocamp Blog

Now that all the setup work is done (see Puppet Test Driven Development: Part 0 – Setup your environment), you can start writing some code. You are going to develop this module in a behavior/test driven manner, meaning you will write tests to describe how the module should behave before writing the actual code.

We will create an openldap::client class that, when declared, will install the OpenLDAP clients tools, including the ldapsearch command, so that we can connect to an LDAP server.

Write your first acceptance test

Getting started

Now for the first tests, we will create a test ...

[ Read More ]

Puppet Test Driven Development: Part 0 – Set up your environment

Mickaël Canévet, 1 month, 2 weeks | Source: Camptocamp Blog

In this series of blog posts, we will write a Puppet module that manages OpenLDAP client and OpenLDAP server. We will make this module compatible with both Debian 7 and RedHat 7. We will explain all the aspects of Puppet Agile development through the detailed examples of class, define, type, provider, function, and fact. Disclaimer: This blog posts are widely inspired by the wonderful tutorial to write puppet-lint plugins, so you may notice some similarities in structures or sentences.


[ Read More ]