Vagrant je open-sourcový software, který slouží pro stavbu a údržbu přenosného virtuálního prostředí pro vývoj software, jako je například VirtualBox, Hyper-V, Docker kontejnery, VMware nebo AWS, které se snaží zjednodušit správu konfigurace software a virtualizaci. Pokouší se tak dosáhnout vyšší produktivity vývoje. Vagrant je psaný v Ruby, ale jeho ekosystém podporuje vývoj v různých jazycích, například PHP, Pythonu, C#, Javě nebo Javascriptu.
Vagrant používá jako stavební kameny „Provisioners“ a „Providers“, aby spravoval vývojová prostředí. Provisioners jsou nástroje, které uživatelům umožňují přizpůsobovat konfiguraci virtuálního prostředí. Puppet a Chef jsou nejpoužívanejší nástroje, které jsou v ekosystému Vagrant používané (také Ansible je dostupný od roku 2014).
Providers jsou služby, které Vagrant využívá, aby nastavil a vytvořil virtuální prostředí. VirtualBox, Hyper-V a Docker virtualizace jsou podporovány přímo v rámci Vagrantu, VMware a AWS jsou pak podporovány za využití pluginů.
Vagrant sedí nad virtualizačním softwarem jako wrapper a pomáhá vývojáři s interakcí s providery. Automatizuje konfiguraci virtuálních prostředí za pomoci Chef nebo Puppet a uživatel tak nemusí přímo používat žádný další virtualizační software.
Hardwarové a softwarové požadavky jsou uloženy v souboru, který se nazývá „Vagrantfile“. Za jeho pomoci jsou spuštěny nutné kroky k výrobě „boxu“ připraveného na vývoj. „Box“ je formát a přípona pro prostředí Vagrantu, který je kopírován do dalšího stroje tak, aby se replikovalo stejné prostředí.
Lokální vývoj je vhodný, pokud vyvíjíte sami pro sebe a do vývoje není zapojený velký tým. Pokud ale pracujete na větším projektu, kde pracuje větší množství týmů a každý tým potřebuje jinou konfiguraci, Vagrant může být vhodným řešením. S jeho pomocí můžete udržet všechny projektové soubory a složky na lokálním prostředí, ale zároveň je mít i na některém serveru. Je tak snadné lokální prostředí zpřístupnit projektovému manažerovi nebo designérovi.