babushka: test-driven sysadmin.

Detailed documentation, rdocs, mailing list

A lot of the tech jobs we do manually aren't challenging or fun, but they're quite particular and have to be done just right -- they're chores. Things that are important to do, but that are better automated than done manually.

That's what babushka is for. Once you describe a job using its DSL, babushka can not only accomplish each part of the job, but also check if each part is already satisfied. For each component of the job, a test, along with the code to make that test pass -- test-driven sysadmin.


Babushka is best installed using, a script that installs babushka via git (and some dependencies via your system's package manager). It's safe to run on existing systems, and intended to be used as the first shell command on a new system too. You can install babushka this way using curl or wget:

sh -c "`curl`"

If you'd rather install manually, all you need to do is clone the git repo (or extract an archive of it), and if you like, link bin/babushka.rb into your path as 'babushka'. See the relevant page in the docs for more information on installing babushka.

Babushka should run on any Unix. OS X and Ubuntu are fully supported, including their respective package managers, homebrew and apt. There is some yum (RedHat/Fedora/CentOS) and pacman (Arch) support, but I'm not familiar with those systems so it might be incomplete. Patches are most welcome.


Fancypath, by Myles Byrne & Chris Lloyd. It's how I made the paths so fancy.

Levenshtein, for typo correction. Thanks to Paul Battley for letting me dual-license it under the MIT license.

Thanks to my rubyist friends who've contributed to babushka by submitting patches---Richo Healey, Dave Goodlad, Alexey and others, and who've helped me with brainstorming and testing---the likes of @aussiegeek, @bjeanes, @brentsnook, @chendo, @chrisberkhout, @drnic, @glenmaddern, @lachlanhardy, @nathan_scott, @notahat, @odaeus, @pat, @quamen, & @ryanbigg.


Babushka is licensed under the three-clause BSD license, except for lib/levenshtein/levenshtein.rb, which is licensed under the MIT license.

The BSD license can be found in full in the LICENSE file, and the MIT license can be found at the top of lib/levenshtein/levenshtein.rb.