Manuel Roccon

ICT & Cyber Security Specialist

Vagrant e Laravel 5.8 – creare e configurare ambienti di sviluppo virtualizzati

Vagrant è uno strumento a riga di comando per la creazione e la configurazione di ambienti di sviluppo virtualizzati.

Questo strumento ci permette do eseguire il provisioning automatico di ambienti in VirtualBox, Hyper-V, Parrallels e Docker, ma il vero vantaggio è che la configurazione avviene attraverso un file di configurazione, dove andremmo a specificare tutte le configurazioni della macchina che vogliamo creare e poterlo distribuire velocemente per creare in poco tempo nuovi ambienti.

Una volta configurato il file, vagrant si occuperà di configurare e scaricare tutto il necessario con il minimo intervento.

Esistono Vagrant Box per ogni tipologia di applicazione, con delle caratteristiche e software già preinstallato. In questo articolo valuteremo il Box per Laravel, essendo che ci faremo girare una versione non aggiornata ci imbatteremo anche in un problema di compatibilità con i Box, per cui dovremmo eseguire un downgrade di versione.

VAGRANT FILE

Come spiegato prima alla base di Vagrant c’è un file di configurazione, tramite questo file di configurazione adeguatamente configurato il sistema crea la macchina e configura automaticamente l’ambiente senza minimo sforzo. In generale ogni Vagrant file è adibito a un tipo di ambiente e può contenere diversi parametri di configurazione anche se i comuni sono uguali, in seguito approfondiremo installando un ambiente per Laravel.

I vari box possono essere cercati al seguente link:

Discover Vagrant Boxes – Vagrant Cloud (vagrantup.com)

INSTALLAZIONE

In questo articolo installeremo un ambiente vagante per far girare in locale una versione di Laravel

Prima di iniziare installiamo GitBash, per comodità mi trovo bene a usare la bash di Linux, e l’installazione di Vagrant tramite questi link:

https://developer.hashicorp.com/vagrant/downloads

https://git-scm.com/download/win

Ora andiamo a cercare il box di cui abbiamo bisogno tramite il link indicato prima

https://app.vagrantup.com/boxes/search

In questo caso possiamo vedere l’ultima versione 13.0.0

Se andiamo in git vediamo altri aspetti della versione

Per installare il box è molto semplice, necessita solo di clonare la repository in una directory locale

git clone https://github.com/laravel/homestead.git ~/Homestead
cd ~/Homestead
git checkout release

Questa versione del box come accennato non ci va bene, perchè è di una versione troppo aggiornata,

quindi in questo caso verchiamo quella corretta ed eseguiamo un git checkout per posizionarsi alla versione corretta

git checkout v8.6.0

CHIAVE SSH

Creiamo la chiave ssh che ci servirà a vagrant per imporare nella vm

VAGRANT FILE

A questo punto dobbiamo configurare il vagrant file dento la cartella appena creata, copiamo la versione di esempio

Ora configuriamo i seguenti paramenti:

Avremo:

  • ip: indirizzo che verrà assegnato alla macchina
  • memory: la memoria assegnata alla macchina
  • cpus: il numero di cpu assegnate alla macchina
  • provider: la tecnologia di virtualizzazione con cui verrà provvisionata la macchina
  • keys: la chiave privata che verrà imporata sulla macchina
  • folders: qui viene specificata la cartella dove è presente i file della nostra app nel nostro pc da collegare alla macchina virtuale
  • sites: qui creeremo i siti con cui possiamo raggiongere la macchina
  • database: il nome del db che verrà creato

AVVIO E PROVISIONING

vagrant up

Ora eseguiremo il provisioning, se è la prima volta vagrant scaricherà il box ed eseguitrà una prima configurazione. E’ necessario aprire il terminal nella macchina locale e spostarsi all’interno dei file creati dal box (dove è presente il file yaml in precedenza modificato).

Durante il provisioning verranno preconfigurate tutte le applicazioni necessarie per far girare correttamente il nostro box.

Se il provisioning è già stato fatto, Vagrant oltre ad avviare la macchina virtuale riconfigurerà tutte le interfacce di rete e mapperò le condivisioni impostate.

SPEGNIMENTO

vagrant halt

Tramite questo comando la macchina verrà spenta.

CONNESSIONE SSH

vagrant ssh

A questo punto l’ultimo comando necessario è quello per collegarci alla macchina in ssh.

Eseguendo un ls vediamo la directory mappata nella nostra macchina locale

Quindi ogni modifica che andremmo a fare nel codice nella nostra macchina locale verrò automaticamente acquisita in Vagrant.

CONCLUSIONE

In questo articolo abbiamo visto come creare e utilizzare un ambiente Vagrant, utile per sviluppare in locale in modo semplice e vedere le modifiche senza avere un server web esterno.

Ovviamente chi ha le repo in Git può utilizzare pull e push per potersi gestire meglio lo sviluppo dei progetti.

Lascia un commento

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