Chapter 3. Provisioning with Puppet
Vagrant is a very powerful tool primarily because of the following key concepts it can manage for us:
- Virtualization
- Provisioning
- Box distribution
- Sharing
In Chapter 1, Getting Started with Vagrant and Chapter 2, Managing Vagrant Boxes and Projects, we learned to use Vagrant to manage virtual machines for us. While this is useful, at this stage, these virtual machines are dumb; they have very little software installed for us to use, and they are certainly not configured for our projects.
There are two approaches we can use to set up a Vagrant-managed virtual machine with all the software required for a project:
- Use a base box that is preconfigured with the software or development stack that we require
- Provision the exact software and configuration that we require using a provisioning tool
Preconfigured base boxes are useful and have their place. If we were always using a specific configuration or we were creating a Vagrant environment for an open source...