Vagrant (software)
{{short description|Software for portable virtual development environments}}
{{Infobox software
| name = Vagrant
| logo = Vagrant.png
| logo size = 150px
| screenshot = Vagrantup.jpg
| screenshot size = 300px
| caption = Vagrant starting a virtual machine using vagrant up
| author = Mitchell Hashimoto{{cite web|last1=Marvin|first1=Rob|title=Mitchell Hashimoto is automating the world|url=http://sdtimes.com/mitchell-hashimoto-hashicorp-vagrant-atlas-automate-world/|website=Software Development Times|access-date=27 June 2016|ref=SDTimes|date=2015-02-26}}
| developer = HashiCorp (Mitchell Hashimoto and John Bender)
| released = {{start date and age|2010|03|08}}{{cite web|url=https://github.com/mitchellh/vagrant/releases/tag/v0.1.0|title=mitchellh/vagrant: Release v0.1.0|work=GitHub|access-date=6 September 2015}}
| discontinued = No
| latest release version = {{wikidata|property|reference|P348}}
| latest release date = {{start date and age|{{wikidata|qualifier|P348|P577}}}}
| programming language = Ruby
| operating system = Linux, FreeBSD, macOS, and Microsoft Windows
| language = English
| genre = Configuration management
| license = Business Source License 1.1{{Cite web|url=https://github.com/hashicorp/vagrant/blob/main/LICENSE|title=vagrant/LICENSE at main · hashicorp/vagrant|website=GitHub}} (source-available)(changing to MPL-2.0 after grace period)
}}
Vagrant is a source-available software product for building and maintaining portable virtual software development environments;{{Cite web|url=http://www.linuxjournal.com/content/introducing-vagrant|title=Introducing Vagrant {{!}} Linux Journal|website=www.linuxjournal.com|access-date=2016-09-14}} e.g., for VirtualBox, KVM, Hyper-V, Docker containers, VMware, Parallels, and AWS. It tries to simplify the software configuration management of virtualization in order to increase development productivity. Vagrant is written in the Ruby language, but its ecosystem supports development in a few other languages.
History
Vagrant was first started as a personal side-project by Mitchell Hashimoto in January 2010. The first version of Vagrant was released in March 2010. In October 2010, Engine Yard declared that they were going to sponsor the Vagrant project. The first stable version, Vagrant 1.0, was released in March 2012, exactly two years after the original version was released. In November 2012, Mitchell formed an organization called HashiCorp to support the full-time development of Vagrant; Vagrant remained permissively licensed free software. HashiCorp now works on creating commercial editions and provides professional support and training for Vagrant.{{Citation needed|date=May 2023}}
Vagrant was originally tied to VirtualBox, but version 1.1 added support for other virtualization software such as VMware and KVM, and for server environments like Amazon EC2.{{cite book|url=http://cdn.oreillystatic.com/oreilly/booksamplers/9781449335830_sampler.pdf|title=Vagrant: Up and Running|publisher=O'Reilly Media|year=2013|isbn=978-1449335830|page=13|author=Mitchell Hashimoto}} Vagrant is written in Ruby, but it can be used in projects written in other programming languages such as PHP, Python, Java, C#, and JavaScript.{{cite web|url=http://www.rubyinside.com/vagrant-ruby-powered-virtualbox-vm-building-and-provisioning-3059.html|title=Vagrant: EC2-Like Virtual Machine Building and Provisioning from Ruby|access-date=May 14, 2012}}{{cite web|url=https://www.vagrantup.com/docs/getting-started/project_setup.html|title=Vagrant - Getting Started - Project Setup|access-date=Jan 19, 2016}} Since version 1.6, Vagrant natively supports Docker containers, which in some cases can serve as a substitute for a fully virtualized operating system.{{cite web|url=https://www.hashicorp.com/blog/vagrant-1-6.html|archive-url=https://web.archive.org/web/20180710011144/https://www.hashicorp.com/blog/vagrant-1-6.html|url-status=dead|archive-date=2018-07-10|title=Vagrant 1.6|date=2014-05-06|author1=Mitchell Hashimoto|access-date=2020-02-23}}
Architecture
Vagrant uses "Provisioners" and "Providers" as building blocks to manage the development environments. Provisioners are tools that allow users to customize the configuration of virtual environments. Puppet and Chef are the two most widely used provisioners in the Vagrant ecosystem (Ansible has been available since at least 2014{{cite web |url=https://adamcod.es/2014/09/23/vagrant-ansible-quickstart-tutorial.html |title=Vagrant & Ansible Quickstart Tutorial |last=Brett |first=Adam |date=2014-09-23 |website=adamcod.es |access-date=2017-08-06}}). Providers are the services that Vagrant uses to set up and create virtual environments. Support for VirtualBox, Hyper-V, and Docker virtualization ships with Vagrant, while VMware and AWS are supported via plugins.{{Citation needed|date=May 2023}}
Vagrant sits on top of virtualization software as a wrapper and helps the developer interact easily with the providers. It automates the configuration of virtual environments using Chef or Puppet, and the user does not have to directly use any other virtualization software. Machine and software requirements are written in a file called "Vagrantfile" to execute necessary steps in order to create a development-ready box. "Box" is a format and an extension (.box) for Vagrant environments that is copied to another machine in order to replicate the same environment. The official Vagrant documentation{{Cite web|title=Documentation|url=https://www.vagrantup.com/docs|access-date=2021-03-27|website=Vagrant by HashiCorp}} details the installation, command line usage, and relevant configuration of Vagrant.{{Citation needed|date=May 2023}}
License change
HashiCorp announced on Aug 10, 2023 that it changed the license of Vagrant from the MIT license to the Business Source License 1.1.{{Cite web|title=HashiCorp's new license is still open source-ish, just with less free lunch|url=https://www.theregister.com/2023/08/11/hashicorp_bsl_licence/}}{{Cite web|title=HashiCorp adopts Business Source License|url=https://www.hashicorp.com/blog/hashicorp-adopts-business-source-license}}
References
{{Reflist}}
External links
- {{Official website}}
- [https://app.vagrantup.com/boxes/search List of Vagrant boxes]
- [https://www.hashicorp.com/bsl Business Source License]
Category:Cross-platform software