It came up twice that I had to do this, so I decided to see if I could make something simple that solved my problem. I'm sure there's a project to do this already, but here goes. I have a list of machines, I want to see if they respond to a ping so I can determine if they are up or not.

My puppet book was released July 25th on

You can also grab a copy from Amazon.

About the book

The book was written to help Puppet Engineers solve problems with their Puppet code and infrastructure.

Talk I gave at Puppetcamp Seattle 2015 - June 4, 2015
Slides are here:

Beginner talk on how to get your code onto your masters.

Tutorial from Cascadia 2015, all about automating your puppet workflow using git, git-hooks, puppet-sync and r10k.

Slides are available here:

Tutorial Questions here:

Files used on github:

I updated John Arundel's Puppet Cookbook. This version includes many recipes aimed at Master/Client configuration, hiera, puppetdb and the future parser.

Available from Packt or


I need to download a script from github but I don't have git on the windows machines, on Linux I just used curl -u, for windows it needed more than a one liner.
Here's what I came up with, we have self signed certs so I need to fool System.Net into thinking all certs are good, that's a one liner:

[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}

Next I create a WebClient object and set two headers:

$client = New-Object System.Net.WebClient

Tutorial I gave at LISA 2014

This is a talk about running puppet in the enterprise, or at scale. The original title of Mastering Puppet was Puppet in the Enterprise, the talk was to present the ideas in the book.

The tutorial files are located on github at:

Talk I gave at puppetcamp seattle 2014

In the first part, Troubleshooting Puppet talks about problems with communication, how to make sure puppet is running and connecting to a master. In the second part, the talk moves on to compilation and catalog application issues. Real world solutions are presented throughout.

This keeps coming up so I thought I'd share one trick we've used to figure out if there are stale nodes out there. These are nodes that are failing to update for various reasons that won't be reported in your reporting mechanism. One of the common causes is an expired or revoked certificate. The agent never gets far enough to report a failure.