Vagrant (software)
Vagrant (software)
Vagrant is an open-source tool for building and managing portable, reproducible development environments. It uses a declarative configuration file called a Vagrantfile to define the operating system, software, and network settings of a virtual machine or container, enabling developers to share identical environments across teams. Vagrant was originally created by Mitchell Hashimoto and later maintained by HashiCorp.
History
Mitchell Hashimoto began working on Vagrant in 2010 as a side project to simplify the creation of virtualized development environments using VirtualBox. The first public release, version 0.1, appeared in March 2010. In 2012, Hashimoto co‑founded HashiCorp to support Vagrant and other infrastructure tools. Version 1.0 was released in 2012, introducing support for VMware and AWS providers. HashiCorp later added Docker and Hyper‑V providers, and Vagrant became a standard tool in the DevOps toolkit. In 2020, HashiCorp revised the licensing to the Business Source License, though the source remains available.
Features
- Declarative configuration: The Vagrantfile describes the entire environment in a single text file, allowing version control and reproducibility.
- Provider plug‑ins: Supports VirtualBox, VMware, Hyper‑V, Docker, libvirt, and cloud providers such as AWS and Azure.
- Provisioning: Automates software installation and configuration using shell scripts, Ansible, Chef, Puppet, or Salt.
- Synced folders: Shares files between host and guest systems, enabling development with native editors while running code inside the virtual environment.
- Networking: Configures port forwarding, private networks, and public networks for access to services inside the guest.
- Multi‑machine management: Allows defining several virtual machines within a single Vagrantfile, useful for multi‑tier application testing.
- Boxes: Pre‑packaged base images (boxes) distributed via HashiCorp’s cloud repository or custom builders, simplifying environment setup.