After months of following devopsreactions, my life feels a lot like it.
So it’s come to pass that I’m now involved in at least four different projects where automated deployment and testing are required (if only to maintain sanity), and as such I’ve been increasingly messing around with Vagrant and Puppet.
Which would be fine if it wasn’t somewhat painful to deal with VirtualBox on a Mac – it works great for simple stuff and does an amazing job, but it’s resource-heavy and slow.
So I dug around a bit and came across vagrant-lxc, which lets you dynamically set up and tear down LXC containers (which I’ve been using for a while and am very familiar with, although they’re a bit of a hassle to set up and tear down repeatedly), and promptly set that up… Inside Parallels, which is what I’m using these days for running VMs on my Mac.
For good measure I also set up Docker inside the same VM and it seems to coexist with vagrant-lxc quite happily, so the next step is likely to be scripting a way to evolve a (development) Vagrant environment to a Docker box. I’ve already started tinkering with that (and, serendipitously, was actually pointed here while writing this post).
The big win here would be to work on reproducible environments using Vagrant and have them re-packaged as a Docker service automatically (or at the very least without much hassle, considering that right now I have to setup two equivalent OS images in two different formats, etc.).
If that turns out OK (and feasible in my rather limited free time), I’ll surely consider using Docker to manage a production environment, despite Go and all1.
But for now I’m wrestling with a script to deploy Solr and associated trinkets inside an LXC container inside a Parallels VM via SSH, which is enough of a challenge for the weekend.