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.
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.
For writing anisble playbooks to use with Vagrant I found the following post very useful - http://hakunin.com/six-ansible-practices