vagrant is a tool for automatically setting up ("provisioning") new vms, according to scripts.
For instance, once you have scripts that download and compile apache, php, python, and perhaps mysql and postgres, you can automatically create a new virtual machine with any combination of those things at any time. Even your applications can be automatically installed in a fresh development environment with a single command. It's great for allowing new developers to get going in their own environment on a team project, and good for you individually, if you have a lot of different things on the go, you can keep them isolated in their own environments and easily setup and destroy them at any time.
The value is adds is great, although it also adds a bit of inconvenience. If your OS likes to update virtualbox a lot, vagrant might suddenly stop working until they update it. Developing the scripts to provision a vm can take quite a bit of time. If you're doing lengthy compiles in the process and those compiles are failing, it can be slow to find out why. Once you get a module down, and it's solid, it's very nice to have.
The place it shines is setting up a complex dev environment and snapshotting that. Then share the snapshot to other developers. They then do something like "vagrant init complex-env", "vagrant up", "vagrant ssh" and they are working in the environment without worrying about Postgres or Apache or Java or anything like that when they just need to work on CSS and HTML.
For instance, once you have scripts that download and compile apache, php, python, and perhaps mysql and postgres, you can automatically create a new virtual machine with any combination of those things at any time. Even your applications can be automatically installed in a fresh development environment with a single command. It's great for allowing new developers to get going in their own environment on a team project, and good for you individually, if you have a lot of different things on the go, you can keep them isolated in their own environments and easily setup and destroy them at any time.
The value is adds is great, although it also adds a bit of inconvenience. If your OS likes to update virtualbox a lot, vagrant might suddenly stop working until they update it. Developing the scripts to provision a vm can take quite a bit of time. If you're doing lengthy compiles in the process and those compiles are failing, it can be slow to find out why. Once you get a module down, and it's solid, it's very nice to have.