Planet Puppet

Your source of Puppet technical information

Supporting long file paths on Windows

Anonymous, June 15, 2021 01:29 PM | Source: Puppet

Long file paths in Windows lead to our own teams using workarounds and hacks to harness Puppet capabilities. That’s when you know it’s time to get to work. Here’s what we did:

[ Read More ]

2021-06-11: IAC & DevX Team Status Update

bethglenfield, June 11, 2021 12:00 AM | Source: Puppet IAC Team

Community Contributions

We’d like to thank the following people in the Puppet Community for their contributions over this past week:

Check all the ways to reach us if you want to directly contact us about anything module related.

New Module / Gem Releases

The following modules ...

[ Read More ]

2021-06-04: IAC & DevX Team Status Update

carabasdaniel, June 04, 2021 12:00 AM | Source: Puppet IAC Team

Community Contributions

We’d like to thank the following people in the Puppet Community for their contributions over this past week:

Check all the ways to reach us if you want to directly contact us about anything module related.

New Module / Gem Releases

The following modules were released this week:

  • puppetlabs-vcsrepo (5.0.0) - this is a re-release of the 4.0.1 code unchanged to signify that ...

[ Read More ]

🚀 Puppet Content Templates 0.1.0 🚀

jpogran, June 04, 2021 12:00 AM | Source: Puppet IAC Team

✨ PDK Puppet Content Templates 0.1.0 released ✨

We are proud to announce the first release for the new PDK templating system: Puppet Content Templates (PCT).

Puppet Content Templates codify a structure to produce content for any Puppet Product that can be authored without direct oversight of the Puppet PDK team.

To get started download the release from the pdkgo repo. A step by step guide is included in the README.

⚠� PCT is currently in an EXPERIMENTAL phase and feedback is encouraged via pdkgo/discussions. ⚠�

Create all types of content �

A PCT can create any ...

[ Read More ]

Check your facts with Puppet Enterprise 2021.1

Anonymous, June 03, 2021 04:06 PM | Source: Puppet

Puppet Enterprise 202.1 ships with Facter 4. Before you upgrade, we recommend checking for differences in fact values from Puppet 6 to Puppet 7. Read the blog to learn more.

[ Read More ]

Ensuring compliance with DISA STIGs, NIST 800-53, CMMC, and RMF

Anonymous, June 02, 2021 12:31 PM | Source: Puppet

Learn how to ensure compliance across various government standards like: DISA STIGs, NIST, CMMC and RMF with infrastructure automation

[ Read More ]

2021-05-28: IAC & DevX Team Status Update

carabasdaniel, May 28, 2021 12:00 AM | Source: Puppet IAC Team

We had a bit of a slow week today. We have a few company-wide mental health holidays and one was this week. It’s really good to disconnect from it all sometimes.

Community Contributions

We’d like to thank the following people in the Puppet Community for their contributions over this past week:

Check all the ways to reach us if you want to directly contact us about anything module related.

New Module / Gem Releases

The following modules ...

[ Read More ]

New CCO & VP Professional Services elevate customer insights

Anonymous, May 27, 2021 01:26 PM | Source: Puppet

Puppet has promoted Beth Shea to Chief Customer Officer and hired Trevor Rodriguez as VP of Professional Services.

[ Read More ]

Enable OpenShift login on ArgoCD from GitOps Operator

Philippe Bürgisser, May 20, 2021 12:48 PM | Source: Camptocamp Blog

Since few weeks now, the operator Red Hat OpenShift GitOps became GA and embbed tools like Tekton and ArgoCD.

When the operator is deployed, it provisions a vanilla ArgoCD which miss the OpenShift integrated login. In this post, we are going to review the steps to enable it.

Deploy and fine tune the Red Hat OpenShift GitOps

  1. Follow the official documentation on the installation of the operator
  2. Once the operator is deployed, go to the menu Operators>Installed Operators and click on the freshly deployed Red Hat OpenShift GitOps
  3. Using the dropdown Actions on top right of the page, ...

[ Read More ]

How to allow dynamic Terraform Provider Configuration

Raphaël Pinson, May 11, 2021 11:47 AM | Source: Camptocamp Blog

Terraform relies heavily on the concept of providers, a base brick which consists of Go plugins enabling the communication with an API.

Each provider gives access to one or more resource types, and these resources then manage objects on the target API.

Most of the time, a provider's configuration is static, e.g.

provider "aws" {
  region = "us-east-1"

However, in some cases, it is useful to configure a provider dynamically, using the attribute values from other resources as input for the provider's configuration.

I'll use the example of the Argo CD provider. In a single Terraform run ...

[ Read More ]

Terraform Project Design — A parallel with Puppet

Mickaël Canévet, May 03, 2021 11:57 AM | Source: Camptocamp Blog


Like Puppet, Terraform provides low-level objects written in a programming language that allows you to manage individual resources.

With Puppet, these low-level objects, the Puppet Types and Providers, written in Ruby, allow you to apply the CRUD paradigm to resources located on managed nodes.

With Terraform, these low-level objects, the Terraform Resources, written in Go, allow you to apply the CRUD paradigm to resources in an API.

On top of this, both solutions provide a DSL: the Puppet DSL for Puppet and the HashiCorp Configuration Language (HCL) for Terraform. They are both declarative languages, allowing ...

[ Read More ]

Testing Application Monitoring Locally with a Docker Composition

Julien Acroute, April 14, 2021 01:37 PM | Source: Camptocamp Blog

In the previous post, we saw how to implement metrics in a simple Python Flask application. In this post we will see how to:

  • start a local monitoring stack with a Docker composition
  • configure Prometheus to scrape metrics from our application
  • build a Grafana dashboard
  • commit the Dashboard definition so other developers can also use it


Before launching an application in a Kubernetes cluster, we need to make sure that it generates the right metrics. This will be done using a Prometheus stack running in a Docker composition.

This test Prometheus stack will be made of:

[ Read More ]

Puppet Tip 119 - Hiera merge behavior

Anonymous, February 11, 2021 12:00 AM | Source: Example 42

Hiera v5 allows you to provide information regarding merge behavior in a couple of different ways. Using different merge behaviors allows you to e.g. separate common (admin) users from application users by adding common users in common hiera layer and the application users into an application hiera layer. This reduces duplicates in data and allow more simple data management. Another example is installation of packages. You usually have a list of packages you need on all systems (admin packages) and some packages which are needed on special systems only. Again you can mention all common packages in hiera common laxer ...

[ Read More ]

From 2020 to 2021

Anonymous, January 12, 2021 12:00 AM | Source: Example 42

We are at the beginning of a new year, example42 wishes all customers, partners, colleagues, friends, and supporters a healthy, successful, and happy 2021. Looking back on 2020 Lookout to 2021 Looking back on 2020 2020 has been difficult for many people and organizations. Many of them have suffered due to lockdown and to local restrictions. Just consider musicians, artists and their crews who had to cancel event after event. Or think about local small business which had to close their shops. Others were able to continue their business and we are super happy that our customers enabled example42 to ...

[ Read More ]

Digging out data in style with puppet 4.5.0

Unknown (, January 11, 2021 02:46 PM | 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 like this: ...

[ Read More ]

Slicing and dicing Forge usage data

Anonymous, December 11, 2020 12:00 AM | Source:

The Forge content ecosystem is large and complex. There are a lot of modules, and modules that use resources from other modules. It can be hard to navigate these relationships when you’re deciding how to invest development resources. For example, it’s useful to know how many modules call a function when deciding whether we should deprecate it.

To assist in making these decisions, the Ecosystem program maintains a publicly accessible database that can help you weigh the costs of some of these decisions. You can use the data directly using the BigQuery console, or if your need is simply ...

[ Read More ]

Puppetize Digital - example42 talk about GIT workflows

Anonymous, November 13, 2020 12:00 AM | Source: Example 42

Puppetize Digital is coming! November 19th! example42 is super excited that we are again delivering a talk to a Puppet conference. This year Martin Alfke is talking about GIT workflows. The talk was prerecorded as Martin recovers from a dental surgery and will be broadcasted on November 19th at 1:30 PM (GMT) and at 2:30 PM (AEDT). Puppet and GIT Single long living branch - simple GIT Staging branches GIT flow Summary Puppet and GIT Working on Puppet always is fun. But working with GIT is hard for many people who are new to GIT. Single long living branch - ...

[ Read More ]

All our good reasons to sponsor Puppettize Digital

Anonymous, November 09, 2020 12:00 AM | Source: Example 42

Another year, another Puppet conference, and another time we are sponsoring it. Let’s see what, how and why. Puppettize Digital Sponsors, as usual Presenting at Puppettize Digital Puppet, for fun and business Puppettize Digital Puppettize Digital will be a 24 hours online event, on November 19, sprayed on three different continents timezones: Asia Pacific: 10:00 AM - 6:00 PM AEDT Europe 9:00 AM - 5:00 PM GMT Americas 9:00AM - 5:00 PM PST In GMT timezone this means: Asia Pacific: 11:00 PM (Nov 18) - 7:00 AM Europe 9:00 AM - 5:00 PM Americas 5:00 PM - 1:00 AM (Nov ...

[ Read More ]

How to update the PostgreSQL version on your puppetserver

admin, October 19, 2020 01:04 PM | Source: Immerda Techblog

Our puppetserver uses puppetdb which users PostgreSQL as the persistent datastore in the back.
So far everything is self-contained on the same VM and PostgreSQL is more less managed by the puppetdb module.
The puppetdb module takes care of setting up the PostgreSQL server and uses the upstream PostgreSQL yum module for the binaries. By default it uses PostgreSQL in version 9.6.

Lately, it was announced that puppetdb will start requiring PostgreSQL at least in version 11. Time to start to upgrade our PostgreSQL installation to be ready.

Since the upstream yum repository allows to install multiple version in parallel ...

[ Read More ]

Porting a module to RHEL 8

Anonymous, October 02, 2020 12:00 AM | Source:

Often, updating a Puppet module to work on a newer platform is mostly a case of fixing up a a few paths or package names. Sometimes though, more significant changes are called for. When updating to RHEL (or family) 8, here are some major changes that we’ve had to account for:

  • dnf is the new standard package manager.
  • Some services only log to systemd now and not to /var/log/*
  • has finally been superseded by Wayland.
  • iptables had been replaced with nftables.
  • The default Python version is now 3.x.
  • Replacing ntpd with the new chrony service. Yes, that means ...

[ Read More ]