Blog / Vagrant


I love the notion of a clean, repeatable install. In my side projects, I've his­tor­i­cal­ly ac­com­plished this through strict doc­u­men­ta­tion practices and directory or­ga­ni­za­tion. However, this process inevitably breaks down for me when a machine becomes multi-purpose.

Either locally or in the cloud, I'll end up installing packages, hacking together con­fig­u­ra­tion, or otherwise making the en­vi­ron­ment murky. In fact, the server that currently hosts this blog is a perfect example. This instance hosts this site, riiga.net, and has been a sandbox for toy projects I've worked on over the past two years.

While I'm reasonably confident I can redeploy this machine within a couple of hours, it would be far more flexible if I could do this in minutes. Or even better, se­lec­tive­ly re-deploy projects to alternate hosts.

For this reason, Vagrant has become my new favorite toy. Vagrant provides simple VM con­struc­tion and pro­vi­sion­ing. This enables easy pro­vi­sion­ing of de­vel­op­ment en­vi­ron­ments, testing large system upgrades, and migrating projects to al­ter­na­tive cloud providers.

To begin exploring the world of automated pro­vi­sion­ing, I decided to create a VM that would serve the Mozilla Sync server. I've hosted the Vagrant Mozilla Sync Con­fig­u­ra­tion on my GitHub. (Disclaimer: this was a warm-up project. All de­pen­den­cies are au­to­mat­i­cal­ly pulled from other source controls. Meaning, this will likely break in the future.)

Isn't this overkill? It certainly seemed so... that is, until the first VM corrupted. When that happened, I simply re-pro­vi­sioned a new instance. About an hour later, I was back up and running with minimal en­gi­neer­ing effort.

What next? I've been itching to try Linux Mint. And what better way than to au­to­mat­i­cal­ly provision my standard desktop deployment!

« Acrylamid Vertical Rhythm »