About This Project
A little bit of history.
What is Vagrant/Puppet and why should I care?
I used to develop locally on a virtual machine. In fact, I wrote a length, detailed step-by-step tutorial (Setting Up a Debian VM, Step by Step) that goes through the process from beginning to end on setting up a Debian VM. It works wonderfully, and I love editing my files on my daily OS (Windows back then, OS X now), and running the applications within a proper environment.
The first problem is obvious: there is a lot of setup involved. Just look at that tutorial. From beginning to end it may take upward of an hour to do the whole process! What happens if you mess up somewhere? You have to start all over!
The next problem comes after you've got the VM up and running. I had to be very careful when making changes to the system, because I was afraid of screwing it up and having to either restart it from scratch or googling trying to undo the damage.
The third large issue is, how to properly share my environment with other developers? Do I really want to upload this multi-GB file? That's a big pain in the butt!
Vagrant and Puppet takes care of all these issues, and more, for you!
The Debian tutorial can be written once, and run multiple times. I no longer have to worry about damaging my VM environment - if I screw something up I can destroy it, re-run Vagrant, and within 3 minutes I have a fully working environment once again! To share, I simply point developers to my Github repo where they download appx. 50KB of text files and run Vagrant on their own machines! Awesome!