Puppet Sneakernet

This is a simple POC web service that will turn a Puppetfile into a tarball of a complete Puppet environment. All you need to do is paste the contents of the Puppetfile into the textbox and press Download.

This will resolve the dependencies of your Puppetfile, create an environment from them, and then pack the whole thing into a tarball. Save that tarball to a USB key, then perform any review or approval required by your security and quality policies.

Once approved, walk the USB key with the modules tarball across your air-gap and uncompress them into your codebase. For example:

$ cd /etc/puppetlabs/code/environments/staging
$ tar -xvzf /media/USB/Puppetfile.packed.<date>.tar.gz --strip-components=1

We recommend using an MD5 checksum to prove that the tarball you deploy is the same as the tarball you get approved. You can generate that with one of the following commands, depending on your platform.

  • md5 Puppetfile.packed.<date>.tar.gz > md5sum
  • md5sum Puppetfile.packed.<date>.tar.gz > md5sum

⚠️ Warning! ⚠️

Resolving dependencies in a Puppetfile means that you'll be installing code that you didn't specifically request into your environment. Make sure you audit the modules from the tarball, not just code from the source repositories of the modules you specified in your Puppetfile.