Vagrant is awesome and most of the time things just work, but like any piece of software, occasionally things go wrong or don’t quite function as planned. I’ve gathered all the issues I’ve run into here and included things you can do to solve them. Hopefully they can help you to get where you’re going quickly. If you’re new to Vagrant, check out my tutorial here:
So now, we’ve installed Vagrant and built our own base box. That’s pretty cool, but you’re not really feeling the power quite yet. Lets take this to the next level. A really common problem that can affect dev, qa and ops is the inability to easily and accurately reproduce the production environment. Over time, this leads to deltas between production and staging that can show up and bite you after a production push. Wouldn’t it be super awesome if you could use the same tools you use to manage your production environment, Chef or in my case Puppet to build a production replica cluster using Vagrant?
Another possibility is that you’re early enough in your product life cycle that you haven’t even reached production yet. Perhaps you’re still bootstrapping your architecture and are doing things as cheaply as possible but need things to be reproducible so that you can move it to production when the time comes. Either way, Vagrant is up to the task.
As I mentioned in my last post, Vagrant is awesome, but I don’t really want to use some random disk image I found on the Internets to bootstrap my demo. I’d rather use an image that is a replica of what I’d actually be deploying in production. Wouldn’t it be awesome if there was some kind of tool that would allow us to build just such a base box? Enter VeeWee
I love vagrant and you should too. According to its web page, Vagrant is a tool for building and distributing virtualized development environments. It uses Virtual Box to provide virtualization and allows you to do really great things quickly. It’s literally become one of my favorite tools in the toolbox almost overnight. I use it to rapidly spin up test infrastructure, vet my changes and to have a much higher degree of confidence in the effects of my architecture decisions.
On my Mac I’ve recently switched from using rvm to rbenv. Since ruby is a prerequisite for many of the topics I plan on discussing here, I’ll give you an overview of how to get it going. I use the excellent homebrew package manager to get all those excellent ports installed. If you’re not using it already, I highly recommend it. Assuming you have it installed, getting rbenv going is fairly straight forward: Continue reading