Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Attempting to automate the installation and configuration of my personal laptop with Puppet.
Branch: master
Failed to load latest commit information.


This is an attempt to use Puppet to manage applications and configuration on my personal laptop.

As I use a Mac, applications mostly come in the form of disk images from the Internet (files ending in .dmg) or in some sort of archive (e.g. MacVim which comes in a .tgz). Development tools (such as git) are installed via Homebrew and Ruby is installed via rbenv and ruby-build.

To accommodate all of the above, I have written a few Puppet package providers:

  • dmg: To download disk images from a URL and then extract specific applications from them into /Applications;
  • tar: To download tarballs from a URL and then extract specific applications from them into /Applications;
  • homebrew: To install packages via Homebrew;
  • ruby_build: To install versions of Ruby through ruby-build.

I use the excellent vcsrepo resource type via a git submodule to manage the installation of Homebrew, rbenv and ruby-build (as they are all just git repositories).

This is very experimental at this point though I am using it personally. If you would like to try it out, you will need to clone this repo and pull in the vcsrepo git submodule like so:

$ git clone
$ cd puppet-workstation
$ git submodule init
$ git submodule update

And then you can run it with:

$ ./workstation.rb

To perform the necessary one-time setup as root, you can simply do:

$ sudo ./workstation.rb
Something went wrong with that request. Please try again.