Planet Puppet

Your source of Puppet technical information

Exploring Puppet(4) modules design patterns

Anonymous, 1 day, 2 hours | Source: Example 42

The enhancements coming with Puppet 4’s parser and type system are starting to appear in the modules ecosystem, still the need to preserve backwards compatibility is often slowing authors from fully embracing the powers and the elegance of the new Puppet language. When example42 announced the 4th generation of its Puppet modules and introduced a complete control repo, we decided to fully embrace Puppet 4 and ignore backwards compatibility. I, Alessandro, was struggling to find a sane way to put together the possibilities (and limitations) of Tiny Puppet, the structure of a full featured control-repo, and the usage of ...

[ Read More ]

Puppet Server: advanced memory debugging

Chris Price, 4 days, 20 hours | Source: Puppet Labs

Very rarely, problematic Ruby code causes memory leaks in Puppet Server. Here's a deep-dive exploration into debugging JVM & Puppet Server memory usage.

[ Read More ]

Puppet Virtual Training subscription: get new knowledge with no waiting

Stephanie Stouck, 6 days, 5 hours | Source: Puppet Labs

The new Puppet Virtual Training subscription makes it easy to ensure ongoing skill development throughout your organization.

[ Read More ]

Including additional resources in your rspec-puppet tests

rnelson0, 6 days, 9 hours | Source: RNELSON0

I’m a strong advocate of creating unit tests for your puppet code with rspec-puppet. I’ve written a number of articles on tests before, so here’s one more. When you’re testing a class, sometimes there’s an expectation that it’s used alongside another class or resource. But your test is only against your class, so how do […]

[ Read More ]

Automate the Bridgekeeper: Using RBAC to safely delegate access

Mindy Moreland, 1 week, 3 days | Source: Puppet Labs

Spending too much time guarding the bridge? Learn to safely delegate server access with Puppet Enterprise’s role-based access control.

[ Read More ]

Level up your Puppet Enterprise skills: get training at PuppetConf 2016

Carthik Sharma, 1 week, 4 days | Source: Puppet Labs

Level up your Puppet skills with training to fit your skill set & interests. Several courses are available to take while you're attending PuppetConf.

[ Read More ]

OpsTheater 1.6: Open Source at last!

Walter Heck, 2 weeks, 3 days | Source: OlinData

source: https://flic.kr/p/robn4v

We're excited to release OpsTheater 1.6 and with that release make the full code open source. We actually quietly released a few weeks back already, but life is busy and I didn't have time to write this blog post until today.

Why Open Source?

Since late 2015 we have been working internally on OpsTheater, a stack of tools we see used individually a lot in Enterprise environments. We decided to put them together so we could make our own lives easier. That turns out to work well. A simple OpsTheater deployment with GitLab, Icinga, ELK Stack and ...

[ Read More ]

A modern Puppet 4 control repo

Anonymous, 2 weeks, 6 days | Source: Example 42

A few weeks ago we introduced version 4 of example42 Puppet modules with a radical change in the reference repository layout. We’ve started to work on a Puppet 4 only compatible control-repo setup and we explored alternatives or optimizations to current best practices. The term “control-repo” is relatively recent in Puppet world but its function has been common for a while: a single place where we manage our whole Puppet setup: our data, our code, the public modules we use. Needless to say that a good stating control-repo is vital to a sane Puppet setup. What we present here ...

[ Read More ]

Converting and Formatting Data Like a Pro With Puppet 4.5.0

Henrik Lindberg (noreply@blogger.com), 3 weeks, 2 days | Source: Puppet on the Edge

Before Puppet 4

Before Puppet 4.0.0 there was basically only the data types; String, Boolean, Array, Hash, and Undef. Most notably missing were numeric types (Numeric, Integer, and Float). In Puppet 4.0.0 those and many other types were defined and implemented in a proper type system. This was all good, but a few practical problems were not solved; namely data conversion. In Puppet 4.5.0 there is a new feature that will greatly help with this task. But first lets look at the state of what is available in prior versions.

Converting String to Number ...

[ Read More ]

Digging out data in style with puppet 4.5.0

Henrik Lindberg (noreply@blogger.com), 3 weeks, 3 days | Source: Puppet on the Edge

In Puppet 4.5.0 there are a couple of new functions dig, then and lest that together with the existing assert_type and with functions makes it easy to do a number of tasks that earlier required conditional logic and temporary variables.

You typically run into a problem in programming languages in general when you are given a data structure consisting of hashes/arrays (or other objects), and you need to “dig out” a particular value, but you do not know if the path you want from the root of the structure actually exists.

Say you are given a hash ...

[ Read More ]

Hiera Node Classifier 0.7

R.I. Pienaar, 1 month, 1 week | Source: R.I.Pienaar - www.devco.net

A while ago I released a Puppet 4 Hiera based node classifier to see what is next for hiera_include(). This had the major drawback that you couldn’t set an environment with it like with a real ENC since Puppet just doesn’t have that feature.

I’ve released a update to the classifier that now include a small real ENC that takes care of setting the environment based on certname and then boots up the classifier on the node.

Usage


ENCs tend to know only about the certname, you could imagine getting most recent seen facts from PuppetDB etc ...

[ Read More ]

Puppet Enterprise Migration from 3.8.4 to 2015.3.3

rnelson0, 1 month, 2 weeks | Source: RNELSON0

I recently completed a PE migration from 3.8.4 to 2015.3.3 (puppetserver 2.2.41 and puppet agent 4.3.2). This was a somewhat painful exercise, as we kept running into issues because we had gotten so far behind on upgrades. If you need to perform the same kind of upgrade, I hope this broad-stroke description of the upgrade […]

[ Read More ]

The 4th generation of example42 Puppet modules

Anonymous, 1 month, 2 weeks | Source: Example 42

Example42 Puppet modules have been around since 2009, they have lived different generations. It’s time for a new one, the 4th. Almost a revolution. Let me give an historical perspective. The first generation of example42 Puppet modules introduced a set of features that were quite uncommon for the times: Support of multiple OS, based on a dedicated params class Possibility to remove (decommission) the resources managed by the module Abstraction and automation of firewalling and monitoring (Optional) Awesome (IMHO) integration with Puppi 1.0 (Optional) The reference layout of this first generation was done in pre Puppet 2.6 ...

[ Read More ]

Come meet us at RootConf 2016 in Bangalore this week!

Walter Heck, 1 month, 2 weeks | Source: OlinData

Conferences are some of the greatest ways to connect with your peers and to soak up new knowledge. However, great conferences are not easy to find. Especially not Open Source-focused conferences. Well, I have good news today: the great RootConf conference iscoming up this week in Bangalore, and you can come and meet the OlinData India team and myself there!
 

Database BOF

On Thursday, I'll partake in a Birds-Of-a-Feather session about open source databases together with Colin Charles, Srihari Sriraman and Raj Sekhar. This promises to be interesting as some of us come from a mysql background where others ...

[ Read More ]

Hello, Rabbithole

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

Please note that this post is a linear and unedited brain dump of what I did. Many things might have changed meanwhile, and I may have learned how to do things better. This is an experiment in progress.

This is a continuation of lass week's post, refreshing my exiscan module using retrospec-puppet, and a few other nifty technologies. In the last installment I contained docker in a virtualbox to avoid magic action at a distance on my desktop (dialogs popping up, audio being muted).

Picking up the Pieces

Last week, I gave up on this, after provisioning a fresh ...

[ Read More ]

Containing Docker

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

Please note that this post is a linear and unedited brain dump of what I did. Many things might have changed meanwhile, and I may have learned how to do things better. This is an experiment in progress.

This is a continuation of lass week's post, refreshing my exiscan module using retrospec-puppet. In the last installment I managed to get the full-system tests running in docker. Yay! It turns out that the SUT from within the docker "container" changes my sound settings and causes weird interactions with my desktop environment. Boo! Isolating myself from the contents of the container ...

[ Read More ]

Setting up modulesync with multiple Puppet modules

rnelson0, 1 month, 3 weeks | Source: RNELSON0

If you maintain more than one Puppet module, you’ve probably spent some time aligning changes in your general setup by hand – rspec helpers, Gemfile, Rakefile, your travis config, etc. Once you have a third or a fourth module, you find that does not scale. Thankfully, there’s a great tool to help automate this: Modulesync. […]

[ Read More ]

Automatic grouping in mgmt

purpleidea, 2 months | Source: The Technical Blog of James

In this post, I’ll tell you about the recently released “automatic grouping” or “AutoGroup” feature in mgmt, a next generation configuration management prototype. If you aren’t already familiar with mgmt, I’d recommend you start by reading the introductory post, and the second post. There’s also an introductory video.

Resources in a graph

Most configuration management systems use something called a directed acyclic graph, or DAG. This is a fancy way of saying that it is a bunch of circles (vertices) which are connected with arrows (edges). The arrows must be connected to exactly two vertices, and ...

[ Read More ]

Cooperating with Travis CI

Anonymous, 2 months | Source: david.log

Please note that this post is a linear and unedited brain dump of what I did. Many things might have changed meanwhile, and I may have learned how to do things better. This is an experiment in progress.

This is a continuation of yesterday's post, refreshing my exiscan module using retrospec-puppet. Today I'm aiming for getting the release_checks running on travis. This should ensure that going forward, the module stays neat and clean.

At work we recently released a new version of puppetlabs_spec_helper that has a new rake task that will run all checks that we want to ...

[ Read More ]

Fixing all the Things

Anonymous, 2 months | Source: david.log

Please note that this post is a linear and unedited brain dump of what I did. Many things might have changed meanwhile, and I may have learned how to do things better. This is an experiment in progress.

This is a continuation of yesterday's post, refreshing my exiscan module using retrospec-puppet.

Braindump

To recap from yesterday, I stopped after finally getting all the boilerplate code up and running, so that the new tests told me that the exim class was missing. In the current code this was a local version of example42/exim. Alessandro has deprecated that module and ...

[ Read More ]