Questa è una grande domanda, quindi la suddividerò in tre sezioni.
Vagabondo
Vagrant viene utilizzato per configurare una o più macchine virtuali tramite:
- Importazione di immagini prefabbricate (chiamate "caselle")
- Impostazione delle impostazioni specifiche della VM (indirizzo IP, nomi host, port forwarding, memoria, ecc.)
- Esecuzione di software di provisioning come Puppet o Chef
Si noti che non installa software né configura la macchina dopo aver caricato la VM e aver impostato le impostazioni di VirtualBox. Pensalo come un motore di scripting per VirtualBox.
Ecco alcuni dei motivi che ho visto per usare Vagrant solo su VirtualBox.
1. Configurare reti multi-VM con facilità
La maggior parte dei contenuti di Vagrant per utenti avanzati che ho letto riguardava la configurazione di più macchine virtuali contemporaneamente. Vagrant ti dà un singolo file di configurazione per configurarli, permettendoti di avviarli tutti con un solo comando.
Supponiamo che tu abbia configurato tre VM per connettersi in rete tra loro utilizzando IP statici sulla sottorete 192.168.1. *. Ti trovi in una posizione che sta già utilizzando quella sottorete per distribuire gli indirizzi IP e le tue VM ora sono in conflitto. Con Vagrant, puoi semplicemente modificare il Vagrantfile e ricaricare le VM, mentre con VirtualBox dovresti aprire le impostazioni per ogni VM, se non avviare ogni VM e modificarle all'interno.
2. Controllo del codice sorgente
Inserendo le impostazioni in un file di testo, consente di impostare la configurazione sotto il controllo del codice sorgente. Hai apportato alcune modifiche la scorsa settimana e hai rotto accidentalmente l'immagine? Ripristina le modifiche e ricarica la VM. Puoi farlo con le istantanee di VirtualBox, ma occuperà molto più spazio di un semplice file Vagrant.
3. Varie piattaforme
C'è un gran numero di scatole disponibili su siti come http://vagrantbox.es . Ciò consente di provare vari sistemi operativi o distribuzioni, applicando lo stesso provisioning per configurare ambienti simili. Ciò può essere utile per testare o aggiungere supporto a nuove piattaforme e richiederebbe molto tempo usando solo VirtualBox.
Esistono molti argomenti per l'utilizzo del software di provisioning e per l'utilizzo di snapshot di immagini. Per ulteriori discussioni, ti indicherò l'eccellente articolo di Stephen Nelson-Smith Come costruire 100 server Web in un giorno .