Overall Satisfaction with Vagrant
We mostly use Vagrant for operations to develop changes that will be applied to our production infrastructure via Puppet. I've also used it for some one-off development tasks I've done where I needed a "disposable" machine to try something out on. I've also used it to provision specific versions of Windows and IE for testing.
- It builds VM quickly and easily, which allows them to be treated like livestock rather than pets. They can easily be thrown away and rebuilt.
- Having access to a large library of VMs (via Vagrantfiles) enables rapid testing in multiple environments.
- It's free and open-source.
- As Vagrant's installed base has expanded, the combinations of Vagrant versions, guest OS versions, and VM providers has exploded. As a result, sometimes a particular combination doesn't work. It can be difficult to pin down the culprit, but the community is very helpful. This isn't really a knock on Vagrant - it's inevitable given its success.
- It's enabled us to develop and test configuration changes to our production infrastructure locally, safely, and quickly without having to use VMs in a cloud. I can't imagine managing our infrastructure without it.
Vagrant is more of a meta-tool compared to traditional VM software. It provides a layer on top of VMware or VirtualBox. Configurations in a Vagrantfile are so much easier to manage than complete VMs.