Vagrant è un tool open source, dedicato principalmente agli sviluppatori, che semplifica la costruzione e la distribuzione di ambienti virtualizzati. Il progetto permette di creare e configurare macchine virtuali attraverso
VirtualBox di
Oracle, il tutto in maniera automatica. L'obiettivo finale è quello di fornire un insieme di strumenti, che consentono di realizzare
ambienti virtualizzati portabili e facilmente riproducibili, da utilizzare
in primis come macchine di sviluppo personalizzate.
A riprova della semplicità di
Vagrant basti persare che per creare una macchina virtuale, basata su
Ubuntu Server, sono sufficienti
quattro istruzioni da linea di comando:
$ gem install vagrant
$ vagrant box add base http://files.vagrantup.com/lucid32.box
$ vagrant init
$ vagrant up
Esse sostanzialmente non fanno altro che scaricare, creare e lanciare in background la VM. Ovviamente una generica macchina Ubuntu si può mettere su una personalizzata
ad hoc per una particolare configurazione da distribuire magari a tutto il team di sviluppo.
Vagrant aggiunge inoltre un ulteriore livello di semplificazione e automazione, permettendo anche la completa configurazione di tutti gli aspetti della macchina virtuale e dei servizi da attivare al suo interno, attraverso l'uso di sistemi di
provisioning come
Chef o
Puppet.
Le
funzionalità principali del progetto, oltre a quelle finora viste, sono dunque il completo accesso SSH agli ambienti virtualizzati; l'assegnamento di IP statici alle macchine virtuali; le directory condivise per permettere di accedere direttamente ai file dentro la VM; la preparazione di macchine virtuali da poter distribuire con facilità, e la possibilità di ricostruire agevolmente un ambiente con un singolo comando. Anche se gli sviluppatori sono il principale target di
Vagrant, la sua flessibilità e potenza lo pone come strumento importante anche in altri ambiti.