Planet Puppet

Your source of Puppet technical information

Updates to Puppet Enterprise release cadence

Anonymous, 3 days, 9 hours | Source: Puppet

With a core focus to deliver customer value faster, the release cadence for Puppet Enterprise will increase from twice a year to quarterly.

[ Read More ]

Optimizing your DevOps toolkit: insights from Puppetize PDX

Anonymous, 4 days, 6 hours | Source: Puppet

In these sessions from Puppetize PDX, DevOps leaders share tips and insights on the tools that help their teams innovate and accelerate.

[ Read More ]

Upgrading your Puppet-managed Windows 2008 servers

Anonymous, 6 days, 7 hours | Source: Puppet

The recommended practices for upgrading your Puppet-managed Windows 2008 servers.

[ Read More ]

Porting the whole world to a new API

Anonymous, 1 week, 2 days | Source: binford2k.com

If you maintain Puppet modules, you might have come across a little gift from me as you got back to coding after the holiday season. It’d be in your GitHub inbox.

Not long ago, I put together a tool to help port Puppet Ruby functions from the legacy 3.x API to the modern API. Over the New Year, I ran it through the ringer and updated it to catch a few more edge cases. Then once I was sure that it ported all valid–or nearly valid–functions I wrote a simple loop to update every Puppet module ...

[ Read More ]

Refactoring legacy Ruby functions

Anonymous, 1 week, 4 days | Source: Puppet

The modern Puppet 4.x function API is safer and more efficient. And it’s easier to write and use! Learn how to port your legacy functions today.

[ Read More ]

Updating Puppet classification with hiera to use the modern lookup command

rnelson0, 3 weeks, 5 days | Source: RNELSON0

One of the most important parts of using any configuration management software, including Puppet, is making sure that your nodes receive the correct classification. You can write all the code you want to describe the desired system state, but if you don’t attach it to a node, it doesn’t provide any value. In previous articles, […]

[ Read More ]

Puppet Tip 111 - HDM released!

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

Merry christmas to everybody. We are super excited to announce today the general availability of HDM (Hiera Data Manager) - a webfrontend for vizualising and managing Hiera data. HDM Requirements Upcoming features Coming soon: HDM Pro Community HDM We learned from several customers, that most of them have specifc requirements when it comes to managing application data. Data must be able to be modified by a person which: has no knowledge on Git has no knowledge on Puppet only runs Windows on Workstation Therefore we decided to develop HDM. HDM starts with letting you select a desired environment where you want ...

[ Read More ]

Puppet Tip 110 - Request for Tiny Data - Part 4 - Defaults and final call

Anonymous, 1 month | Source: Example 42

Post four of four about our Request for Tiny Data! Previously we have: Part 1 - Introduced Tiny Puppet and where it can be used Part 2 - Described how to write Tiny Data Part 3 - Shown special tiny data to handle package repositories, configuration files validation and usage within containers Now let’s add a few other info and raise the final call! Tiny Puppet defaults Did we mention that Tiny Puppet is smart enough to do something also when it has no Tiny data for an application? In this case it simply tries to declare a resource like: package { 'unknown_app ...

[ Read More ]

Puppet Tip 110 - Request for Tiny Data - Part 4

Anonymous, 1 month | Source: Example 42

Request for Tiny Data! So, here is our call for tiny data. We have tinydata for some applications: ls -la data/ | wc -l 179 the common ones or what we needed or found interesting. Still there’s more. A lot of wonderful applications that would be great to be able to install on a shell command: tp install wonderapp or manage with a Puppet define: tp::install { 'wonderapp': } On any Linux, and maybe Mac and Windows. With the quick choice of using the default OS packages, the app upstream repo or any other repo might be configured. tp::install { 'wonderapp ...

[ Read More ]

Puppet Tip 109 - Request for Tiny Data - Part 3 - Tiny, fancy and powerful features

Anonymous, 1 month | Source: Example 42

Here is the is the third part of a blog series on our Request for for Tiny Data. Previously we have: Part 1 - Introduced Tiny Puppet and where it can be used Part 2 - Described how to write Tiny Data Here we are going to reveal some new and not so new features of Tiny Data: Managing additional repositories There 2 ways to are manage repos, the first is to specify the typical data to use in apt repos: elasticsearch::settings: init_file_path: '/etc/default/elasticsearch' repo_url: 'http://packages.elastic.co/elasticsearch/2.x/debian' key: 'D88E42B4' key_url: 'https://packages.elastic ...

[ Read More ]

Automagic Puppet Function Updater

Anonymous, 1 month, 3 weeks | Source: binford2k.com

Last week I wrote about porting legacy Ruby Puppet functions to the modern API. It struck me how programatic the refactoring process was, so I wrote a tool to automate much of it. The functions it generates are not great but they’re a start, and they’re validated to at least work during the process.

Installing

The tool is distributed as a Ruby gem with no dependencies, so simply gem install.

$ gem install puppet-function-updater

Usage

Run the command puppet_function_updater in the root of a Puppet module, then inspect all the generated functions for suitability when it’s done. If ...

[ Read More ]

Upgrade to Puppet 4.x functions already!

Anonymous, 2 months | Source: binford2k.com

For many years, you’ve been able to extend the Puppet language by writing custom functions in Ruby. And since the functions were autoloaded from modules, a large ecosystem developed adding all sorts of functionality. For example, puppetlabs/stdlib includes a smorgasbord of string manipulations, data validations, data structure munging, etc. But the original function API had many critical limitations, and Puppet introduced a new and improved API with Puppet 4.x. I’d like to tell you about some of the benefits and how to upgrade your own functions to the new API. It’s surprisingly easy to do ...

[ Read More ]

Agent Side Functions in Puppet 6

Anonymous, 2 months, 1 week | Source: binford2k.com

Puppet 6 introduced Deferred functions, a new feature that allows you to run code on the agent side during enforcement. This is both functionality that people have been requesting for ages, and also behaviour that many people already mistakenly assumed existed. As a matter of fact, the Puppet execution model isn’t very well understood at all and many people already think they’re using Puppet like a shell script engine!

So first, let’s take a quick look at how the catalog gets built and enforced. There are a few stages we need to understand.

  1. The agent generates facts ...

[ Read More ]

Adventures in the Terraform DSL, Part VIII: The Puppet provisioner

Alex Harvey, 3 months, 1 week | Source: Alex Harvey | Puppet

This post discussed a proof of concept of the Terraform 0.12.2 Puppet provisioner.

Introduction

In Terraform 0.12.2 a “basic Puppet provisioner” was added per feature request #18851. The motivation for the provisioner is apparently to simplify installing, configuring and ...

[ Read More ]

First Steps with Bolt

David Schmitt, 7 months, 2 weeks | Source: david.log

For the longest time (like for the last six(!) years), everytime I pushed a change to my puppet repositories, I would ssh and sudo onto my puppetmaster and search in my shell history for the commands I used to deploy those changes the last time:

david@zion:~$ ssh puppetmaster.example.net -p 2200
Linux puppetmaster 3.2.0-6-amd64 #1 SMP Debian 3.2.102-1 x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ...

[ Read More ]

Data consistency testing in Puppet, Part II: Testing file content

Alex Harvey, 9 months, 1 week | Source: Alex Harvey | Puppet

This post continues my blog series on data consistency testing in Puppet, where I add additional layers of automated testing around the file content in Puppet catalogs. For Part I of the series, see here.

The source code for this blog is available at GitHub here. Step through the revision history to see the various examples.

[ Read More ]

Puppet 6 type system - Posts

Henrik Lindberg (noreply@blogger.com), 1 year, 1 month | Source: Puppet on the Edge

Puppet 6 type system - Posts

Puppet 6 Type System - Index

This is an index page with links to all of my blog posts in the series about the Puppet 6 Type System support for the Object data type.

  • The first post introduced the Object data type and the history behind Pcore. You probably want to read that first.
  • The second post covers more about how attributes are specified
  • The third post is about inheritance.
  • The fourth post overs Object behavior - that is the operations that are available on Object, how they can be controlled, and how methods/functions are defined ...

[ Read More ]

Puppet 6 type system - Methods

Henrik Lindberg (noreply@blogger.com), 1 year, 1 month | Source: Puppet on the Edge

Puppet 6 type system - Methods

Puppet 6 Type System - Object Methods

Introduction

This is the fourth posting in the series about the Object data type in the Puppet Type System - Pcore. The first post introduced the Object data type and the history behind Pcore. You probably want to read that first. The second post covers more about how attributes are specified, and the third post is about inheritance. In this post, I will cover Object behavior - that is the operations that are available on Object, how they can be controlled, and how methods/functions are defined and implemented.

Terminology Corner ...

[ Read More ]

Puppet 6 type system - Object Inheritance

Henrik Lindberg (noreply@blogger.com), 1 year, 2 months | Source: Puppet on the Edge

Puppet 6 type system - Object Inheritance

Puppet 6 Type System - Object Inheritance

Introduction

This is the third posting in the series about the Object data type in the Puppet Type System - Pcore. The first post introduced the Object data type and the history behind Pcore. You probably want to read that first. The second post covers more about how attributes are specified. In this post, I will cover inheritance as well as one feature I forgot in the second post.

Constant Attributes

Yeah, so, I forgot to mention that there is a short form for specifying constants. In the second ...

[ Read More ]

Puppet 6 type system Object attributes

Henrik Lindberg (noreply@blogger.com), 1 year, 2 months | Source: Puppet on the Edge

Puppet 6 type system Object attributes

Puppet 6 Type System - More about Object Attributes

Introduction

This is the second posting in the series about the Object data type in the Puppet Type System - Pcore. The first post introduced the Object data type and the history behind Pcore. You probably want to read that first.

In this post I am going to show how attributes of Objects work in more detail.

Recap Defining an Object data type in Puppet

As you may recall from the earlier post - an Object data type can be created like this in Puppet:

type Car = Object ...

[ Read More ]