У меня работает аналогичная установка, и я решил использовать Vagrant как то же самое, что наши разработчики используют для нормализации среды разработки.
Начальное состояние виртуальной машины было написано с использованием puppet, но мы не запускали сценарии развертывания с нуля для каждого теста, только один раз в день.
Вы можете использовать puppet / chef для всего, но для всех других операций на виртуальной машине мы будем использовать Fabric сценарии, так как они также используются для реального развертывания и каким-то образом соответствуют тому, как мы работали лучше , В итоге сценарий будет выглядеть примерно так:
vagrant up # fire up the vm, and run the puppet provisioning tool
fab vm run_test # run tests on vm
fab local process_result # process results on local shared folder
vagrant destroy # destroy the vm
Преимущество заключается в том, что ваши разработчики могут также использовать vagrant для имитации вашей производственной среды, не заботясь об этом сами (т.е. изменения настроек вашей базы данных синхронизируются со всеми вашими разработчиками в виртуальной среде, где бы они ни находились), и могут использоваться одни и те же сценарии. используется в производстве тоже.