Description
Having scriptable, versioned, managed software configurations is a great platform on which to start building reproducible environments . We have a number of areas identifying containerization (e.g. Docker) as one solution, but scriptable environments like Vagrant can also provide such a platform.
Vagrant provides ways to build, version, share, and repackage entire virtual machines. This approach be much more forgiving (compared to Docker) during the assembly of software environments, while still providing the benefits of dependency management, versioning, and isolation (compared to bare metal). Additionally, Vagrant is extensible with a plugin architecture and encourages re-usable recipes rather than black boxes.
Most importantly, this tutorial will show how Vagrant makes it easy to get a environment running, and straightforward to continue developing on that environment.
- Developing inside a Vagrant VM - start with an existing box, login.
- Running on other providers - VirtualBox, VMware, AWS, Docker
- Decoupling from Vagrant - Using provisioner
- Sharing Vagrant boxes - both access to running instances and packaging boxes