Vagrant: Up and Running is a relatively new book from the reliable O’Reilly stable. The author of the book and creator of Vagrant, Mitchell Hashimoto, says: “Vagrant is a tool for building complete development environments, sandboxed in a virtual machine.”
This is a short and dense book. It can be read “cover to cover” to get a good overview of the whys, hows, and details of Vagrant; it can be used as a reference – although you should keep an eye on the source as Vagrant’s a living project.
For me the book provides a solid foundation for day to day use of Vagrant, with plenty of guidance for getting into more advanced usage. Automation is encouraged by Vagrant’s workflows, and Vagrant plays well with Chef and Puppet to provision systems. There are no obvious gaps in the book from my perspective, it covers a lot of ground in a relatively slim volume (196 pages on my iPad, 156 pages in paper according to O’Reilly).
To me the big benefit of Vagrant is that you can provide a project with a base box and a Vagrantfile, and any contributor will be able to quickly and easily bring up a standard environment in which to develop and test. This can eliminate any number of “…but it works on my system!” type problems.
The book explicitly states The Tao of Vagrant which essentially means that developers and systems operations engineers are all able to use identically built systems in VMs while still able to use their favourite tools and workflows on their development hosts. These systems are easy and quick to mint. The book works its way from simple set-ups to more complicated examples using multiple virtual machines networked together. By the end of the book you have been exposed to Vagrant plugins, and you will most likely have enough of its concepts under your belt to navigate the source (even if you’re not yet familiar with Ruby).
There is some repetition in the book which makes it easier to use as reference, but seems a little odd when reading it end to end. As there’s no filler in the book this is not an issue in my eyes.
If you need to distribute environments which can be run inside virtual machines to developers, testers, or deployers then Vagrant is a tool worth a long hard look, and Vagrant: Up and Running is a great kickstart and reference guide.