I'm creating a virtual machine to mimic our production web server so that I can share it with new developers to get them up to speed as quickly as possible. I've been through the Vagrant docs however I do not understand the advantage of using a generic base box and provisioning everything with Puppet versus packaging a custom box with everything already installed and configured. All I can think of is;
Advantages of using Puppet vs custom packaged box
- Easy to keep everyone up to date - Ability to put manifests under version control and share the repo so that other developers can simply pull new updates and re-run puppet i.e. 'vagrant provision'.
- Environment is documented in the manifests.
- Ability to use puppet modules defined in production environment to ensure identical environments.
Disadvantages of using Puppet vs custom packaged box
- Takes longer to write the manifests than to simply install and configure a custom packaged box.
- Building the virtual machine the first time would take longer using puppet than simply downloading a custom packaged box.
I feel like I must be missing some important details, can you think of any more?