I’ve been using the Propellor configuration management system for the past month or so for my laptop and desktop, for three reasons:

  1. It’s elegant and cool for a lot of use cases, although some stuff (e.g. a whole Postfix config file) seems awkward.
  2. It’s a chance to learn some Haskell by having a real project to try to hack on, and just general syntax practice.
  3. I want a formal description of how my machine should be set-up, rather than scribbled instructions that I make for myself on how to get it to that point.

(3) is much more important to me than (1). I reinstall my machines roughly once every 18 months to two years, so there’s inevitably drift between (a) what my instructions say I need to do to set things up; (b) how Debian is to be set up; (c) the actual state my machine is in as I make small tweaks and forget to document them. Propellor doesn’t fix any of this, so it only saves me a very little effort in between machine reinstalls by being elegant and cool per (1). But the work involved in reinstalling a machine is much easier thanks to (3).

When I am better at Haskell I hope to extend Propellor to work as a non-superuser to provision shell accounts for me.