This is pretty much what I do when developing as it's a good idea to make your dev environment as close to production as possible.<p>I do however substitute chef for ansible as I found chef difficult to use on a single server (chef-solo was flakey) and bootstrapping is a pain.<p>For writing anisble playbooks to use with Vagrant I found the following post very useful - <a href="http://hakunin.com/six-ansible-practices" rel="nofollow">http://hakunin.com/six-ansible-practices</a>
Just want to point out that if you're using an encrypted filesystem, vagrant up will fail if NFS is enabled. The workaround is to use rsync to maintain the synced folders, a feature introduced in Vagrant 1.5. Just use vagrant rsync-auto to keep the guest folder in sync automatically with your local folder. If you modify files within the VM (like with a bundle install that modifies your Gemfile.lock or with rails generators), I recommend installing the vagrant-rsync-back plugin (<a href="https://github.com/smerrill/vagrant-rsync-back" rel="nofollow">https://github.com/smerrill/vagrant-rsync-back</a>).
We use this at work and it's awesome. Solved a lot of big problems and a lot of little problems, like "works on my machine but not prod" and rebuilding your dev env when you switch machines. etc.<p>The one thing that became a problem was managing vmware (the plugin is a closed source one, so it was hard to debug any issue that came up with it - easily solved by writing our own open source one)
My workflow is very similar, except with Vagrant + SaltStack for all my development images, which has saved me <i>so</i> much time when bringing new developers onto a project. Thumbs-up.<p>One thing that's bitten me a few times is case-sensitivity when using NFS and HFS+ -- still wishing I could find a solution that didn't require setting up an additional partition on my host machine.
I tried using Vagrant on my company Macbook but found it much slower than just running everything on OSX. Does anyone have any tips for improving the performance?
I use a fairly simple bash script to initialize my rails vagrant instances. Total of 34 lines including comments and didn't require learning any new config tools.<p>While I'd favor using proper config management this was a much better use of my time.
We're using Fig (and docker-osx) for this. One command to set up the environment and another to bring in a database copy. I recently formatted and upgraded to Yosemite and was able to get back to work in under a half hour.
Haha I was literally studying this yesterday. Vagrant Cloud's search function is surprisingly broken, it was surprisingly hard to find a box running Ubuntu Trusty, Rails 4.1 and rbenv.