Vagrant configuration: automatizzare si può

vagrant

In ideato non abbiamo mai disdegnato gli ambienti Vagrant, non ne facciamo mistero: siamo abituati a creare una macchina virtuale per ogni progetto, anche piccolo, utilizzando un template personalizzato per le nostre esigenze come base di partenza per velocizzare il processo.

Proprio questo pattern di utilizzo ci ha spinti a creare un configuratore automatico in modo da evitare di dover configurare manualmente l’ambiente della macchina virtuale, nasce così Vagrun.

Il template della macchina virtuale

Una delle pratiche che utilizziamo abitualmente per velocizzare lo start up di un progetto è quella di inizializzare un ambiente Vagrant partendo dal template che @ricfrank ha creato e pubblicato su github.

Una volta clonato il repository avrai a disposizione uno scheletro per costruire la tua macchina virtuale, dovrai solo seguire gli step di configurazione… ma dimenticare qualcosa è questione di un attimo e ci si ritrova per le mani una Vagrant che non funziona. Personalmente mi è capitato più spesso di quanto voglia ammettere, e questo è stato un valido movente per creare un tool che eseguisse queste operazioni per me.

    “Un programmatore pigro è un bravo programmatore”

Installazione ed utilizzo di Vagrun

Il tool Vagrun consiste di 3 semplici comandi che permettono di scaricare il template della Vagrant, eseguire una configurazione guidata e in casi estremi di eliminare l’intera installazione. L’unico requisito è PHP 5.4 o superiore. Per poterlo utilizzare ti basta scaricarlo ed assegnargli i permessi di esecuzione, come segue:

 

Attraverso il comando ‘init’ puoi scaricare il template della macchina Vagrant all’interno della cartella in cui si trova il tool, oppure nella cartella di destinazione se hai utilizzato il parametro ‘–path’:

 

Con il comando ‘config’ puoi avviare la configurazione guidata della macchina virtuale, sarà il prompt a modificare i file necessari al buon funzionamento della Vagrant, tu dovrai solo rispondere ad alcune semplici domande:

  • personalizza la macchina secondo le tue esigenze (vagrantconfig.yml)
  • imposta MySQL (provisioning/ideato.database.mysql/vars/main.yml)
  • definisci apache ed il virtualhost che preferisci (provisioning/ideato.webserver/vars/main.yml)

Anche in questo caso è possibile definire su quale progetto effettuare la configurazione:

 

A questo punto la macchina virtuale è configurata e pronta all’utilizzo!

“Da grandi poteri derivano grandi responsabilità”

All’inizio di questo paragrafo ho parlato di un terzo comando, il ‘cleanup’ del progetto. Esiste veramente, ma va utilizzato con attenzione: questo comando eliminerà l’intera inizializzazione e configurazione, cancellando tutti i file e la cartella .vagrant… se sei abbastanza coraggioso puoi utilizzare l’opzione ‘–force’ che non richiede una conferma prima di eseguire la cancellazione:

 

Vagrun needs you!

Vagrun non è un tool complesso ma non per questo è stato sviluppato con superficialità: abbiamo deciso di implementare qualche test per verificare che la configurazione guidata si comporti bene!

In ideato abbiamo già iniziato ad utilizzare Vagrun ma questo non significa che il progetto sia concluso: noi, lavoro permettendo, continuiamo a migliorarlo ma se questo tool ti interessa puoi contribuire al suo sviluppo tramite pull request al repository pubblico su github!