What this book covers
Chapter 1, Setting Up Your Environment, covers a few basics about hypervisor technology, the installation of Vagrant and VirtualBox, and some simple recipes to get started with Vagrant machines.
Chapter 2, Single Machine Environments, contains recipes to get started with writing single machine Vagrantfiles, including booting machines, forwarding ports, and customizing the virtual machine environment.
Chapter 3, Provisioning a Vagrant Environment, introduces the concept of provisioning Vagrant machines, installing software, and customizing the environment to develop and deploy software. This chapter focuses on using shell (bash) scripting to modify the Vagrant environment.
Chapter 4, Provisioning With Configuration Management Tools, contains simple recipes to provision Vagrant machines with four common configuration management tools: Puppet, Chef, Ansible, and Salt. These tools allow easier configuration of machines that have more complex environments. They also allow Vagrant machines to share the same provisioning instructions as other environments.
Chapter 5, Networked Vagrant Environments, contains recipes focused on networking Vagrant machines with external hosts and with each other. We cover a few topics from the basics of assigning host entries to networking a cluster of Vagrant machines with Consul.
Chapter 6, Vagrant in the Cloud, contains recipes to use Vagrant with cloud providers (specifically, Amazon Web Services and DigitalOcean). It also contains the use of Hashicorp's Atlas tool to share Vagrant environments with remote users.
Chapter 7, Packaging Vagrant Boxes, introduces methods to package Vagrant boxes for others to use. Recipes include the packaging of boxes using manual and automated tools and tips to share your box with others on Atlas.
Appendix A, Vagrant Plugins, gives a short introduction on how to extend the capabilities of Vagrant by developing plugins.
Appendix B, A Puppet Development Environment, expands on the introduction in Chapter 4, Provisioning With Configuration Management Tools, to set up a more robust configuration environment to develop Puppet scripts. While the focus is on using Puppet to provision, similar environments can be created to support the configuration management environment of your choice.
Appendix C, Using Docker With Vagrant, is an introduction to use Vagrant to create, deploy, and test Docker (http://docker.io) containers. This appendix introduces techniques to launch Docker containers with Vagrant as well as build and test a complete Docker environment.