Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Attempting to automate the installation and configuration of my personal laptop with Puppet.

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 modules
Octocat-spinner-32 .gitmodules
Octocat-spinner-32 README.md
Octocat-spinner-32 workstation.rb
README.md

Puppet-Workstation

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 https://github.com/mudge/puppet-workstation.git
$ 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.