Arrivano Vagrant e Veewee

In questi ultimi tempi il mio parco di strumenti e tecnologie preferite per sviluppare applicazioni si è molto ampliato. Prima pensavo che troppi strumenti alla fine complicassero le cose, ma alla fine mi trovavo sempre a farmi da solo degli strumenti per velocizzare alcune cose ripetitive…. praticamente stavo riscoprendo la ruota ogni volta invece di usare roba collaudata da parecchi sviluppatori molto più bravi di me.

L’esempio ultimo è Vagrant. Sapevo cosa fosse da un pezzo, ma mi ero sempre rifiutato di usarlo… fino a ieri.

Il problema

Ho un server con Debian 6 dove gira una applicazione PHP piuttosto complessa sulla quale devo mettere le mani… normalmente avrei usato il mio server locale per fare le modifiche ma la versione di PHP che ho sulla mia Debian unstable non solo non è la stessa rispetto a quella sul server (5.3.3 contro 5.5.1) ma in sid c’è anche un fastidioso bug che rende inutilizzabile la mia copia locale.

La soluzione

Quindi ho detto… “va bè, mi faccio una macchina virtuale con virtualbox usando la stessa debian che c’è sul server e sviluppo là”.

L’approccio è giusto ma la strada è lunga….

  1. trovare l’immagine di debian che non è più la versione corrente
  2. installare a mano il so
  3. installare e configurare php, apache, mongodb, l’estensione di mongo per php
  4. mettere dentro la macchina l’applicazione e le dipendenze

E una volta che il server è su e la nostra applicazione installata bisogna lavorarci… e quindi o uso il vecchio sistema per cui modifico un file e poi lo sparo su in ftp oppure mi installo tutti i miei plugin di vim dentro la macchina virtuale e lavoro lì dentro… insomma… l’approccio è giusto ma alla fine dello sbattimento rimangono delle perplessità. E qui arriva Vagrant.

Vagrant

Vagrant in fondo fa esattamente quello che ho fatto io a mano (usa virtualbox per creare una macchina virtuale ad hoc per il progetto) e in più permette di lavorare direttamente sull propria copia dell’applicazione tramite un utilizzo intelligente delle cartelle condivise. In pratica la cartella del progetto (ed eventuali dipendenze esterne) vengono caricate nella macchina come cartelle condivise, per cui ogni modifica che faccio alla mia copia locale si riflette istantaneamente nella macchina virtuale.

Però

Però… per creare una macchina virtuale come voglio io, cioé con Debian 6, php, mongodb ecc ecc devo andarmi a scaricare una cosa che in vagrantese si chiama base box, cioè una macchina virtuale già installata e preimpostata sulla quale poi fare le modifiche che mi servono per far girare la mia app. Queste base boxes si trovano sul web, ma non si sa chi l’ha fatta, quanto posso fidarmi e poi… visto che sul server ci sono anche altre applicazioni è probabile che le mie impostazioni mi serviranno spesso e quindi, perché rifarle a mano per ogni progetto?

Veewee

Questa applicazione dal nome assurdo aiuta in questa parte del percorso. Permette cioè di crearsi senza troppo sbattimento una base box da usare con vagrant. Vederlo all’opera sembra magico, si scarica da solo l’iso della distribuzione richiesta, fa tutta l’installazione base e poi tramite degli script bash completamente personalizzabili installa tutto il software aggiuntivo necessario.

E così con veewee mi sono fatto una base box identica al server e con vagrant posso lavorare sulla mia applicazione alle stesse condizioni che ho sul server remoto.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *