Alla scoperta di Vagrant
Cosa è Vagrant
Vagrant è un software opensource distribuito da Hashicorp che permette di creare macchine virtuali su molti hypervisor (kvm, VirtualBox, VMware, …).
Strizza l’occhio all’infrastructure as a code e permette di costruire, modificare e distruggere macchine virtuali con enorme facilità sfruttando le API dei vari hypervisor.
Terminologie utilizzate:
- provider: definisce quali api utilizzare per comunicare con l’hypervisor;
- box: definisce quale immagine di macchina virtuale utilizzare;
- provisioning: definisce azioni e comandi da eseguire dopo l’avvio.
Queste informazioni vanno definite all’interno di un file di configurazione chiamato Vagrantfile.
Di seguito un piccolo esempio per avviare una macchina virtuale con Debian 10.
config.vm.box = "debian/buster64"
config.vm.provider "virtualbox" do |v|
v.memory = 1024
v.cpus = 2
end
Con il comando vagrant up si avvierà su VirtualBox una macchina virtuale con 2 virtual cpu e 1 GB di RAM.
E’ possibile collegarsi in ssh con il comando vagrant ssh.
Una volta terminate le attività si potrà decidere se spegnere la macchina virtuale (vagrant halt) o distruggerla in modo permanente (vagrant destroy).
Dopo un pò di pratica sarà non solo possibile creare macchine virtuali ma intere infrastrutture composte da istanze, reti e molto altro.
E’ possibile cercare box di partendo dal sito di Vagrant e una volta scaricato il Vagrantfile si potrà personalizzare l’ambiente.
Per gli esempi mi baserò sul provider VirtualBox.
Creiamo una cartella per il nostro nuovo progetto e scarichiamo il Vagrantfile.
vagrant init debian/buster64
All’interno dei file troveremo molti utili commenti che per ragioni di spazio non inserirò.
Ecco un esempio interessante di Vagrantfile.
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "debian/buster64"
config.vm.network "public_network"
config.vm.provider "virtualbox" do |vb|
vb.gui = false
vb.cpus = 2
vb.memory = "1024"
end
config.vm.provision "shell", inline: <<-SHELL
apt-get update
apt-get install -y apache2
SHELL
end
Avviando il deploy verrà creata una macchina virtuale Debian Buster su VirtualBox con le seguente caratteristiche:
- 2 virtual cpu;
- 1 GB di RAM;
- rete bridged sull’intercaccia selezionata in fase di avvio.
Appena avviata la macchina virtuale verranno aggiornati i repository e installato Apache http server.
Dimostrazione
Le opinioni in quanto tali sono opinabili e nulla ti vieta di approfondire l’argomento.
Risorse: