In order to use vagrant you need something called a base box. When you run vagrant up, vagrant makes a copy of your base box to use with your project.
Mitchell Hashimoto (vagrant’s author) provides an example base box based on Ubuntu, but I use CentOS at my workplace, so I’ve rolled my own base boxes. This walkthrough explains how to create a base box for Vagrant 1.1 using CentOS 6.2.
There are some automated tools you can use to do this, but I wanted to understand how all of the pieces fit together, because I feel less nervous about putting ssh keys and passwords into boxes that way, and I’m also better situated to troubleshoot when things go wrong (and they will).
However, once you’ve digested this article you might want to check out veewee and bento. At the very least, I’m sure you can improve on my process.