Introducció a Vagrant

Introducció a Vagrant

Vagrant és una eina que crea i gestiona màquines virtuals a partir d’un fitxer de text. Descrius com vols la màquina i Vagrant la munta per tu, sempre igual.

Què és Vagrant

Normalment, crear una màquina virtual vol dir obrir un programa de virtualització, triar un sistema operatiu, instal·lar-lo, configurar la xarxa i instal·lar el programari necessari. És un procés lent i difícil de repetir exactament igual.

Vagrant automatitza tot això. Tota la configuració es guarda en un únic fitxer anomenat Vagrantfile, i amb una sola ordre, vagrant up, la màquina es crea, s’arrenca i queda llesta per fer-la servir.

Vagrant no virtualitza per ell mateix. Es limita a donar ordres a un programa de virtualització (anomenat provider), com ara VirtualBox, VMware, libvirt/KVM o Hyper-V.

Per què l’utilitzarem

  • Reproduïble: el mateix Vagrantfile genera sempre la mateixa màquina.
  • Ràpid: pots destruir una màquina i tornar-la a crear en pocs minuts.
  • Segur per provar: si trenques alguna cosa, esborres la màquina i comences de nou.
  • Escalable: amb un sol fitxer pots definir moltes màquines i fer que es comuniquin entre elles.
  • Compartible: n’hi ha prou amb passar el Vagrantfile a una altra persona perquè tingui el mateix entorn.

Com funciona

  • VagrantfileDescriu la màquina que vols
  • VagrantLlegeix el fitxer i executa les ordres
  • ProviderEl programa que crea la VM (p. ex. VirtualBox)
  • Màquina virtualLlesta per fer-hi vagrant ssh

Conceptes que farem servir

ConcepteQuè és
VagrantfileFitxer de text (amb sintaxi Ruby) que defineix la màquina: sistema operatiu, memòria, xarxa, carpetes compartides i programari.
BoxImatge base d’un sistema operatiu ja preparada, que Vagrant descarrega i utilitza com a punt de partida (per exemple, una Ubuntu o una Debian).
ProviderEl programa de virtualització que executa realment la màquina. El més habitual per començar és VirtualBox.
ProvisionerScript o eina (shell, Ansible…) que instal·la i configura programari dins la màquina de manera automàtica quan es crea.
Carpeta sincronitzadaCarpeta compartida entre el teu ordinador i la màquina virtual. Per defecte, la carpeta del projecte és accessible dins la VM a /vagrant.
XarxaManera de connectar la màquina: redirecció de ports, xarxa privada amb IP fixa o xarxa pública.

Ordres bàsiques

OrdreQuè fa
vagrant initCrea un Vagrantfile inicial al directori actual.
vagrant upCrea i arrenca la màquina (i executa el provisioning la primera vegada).
vagrant sshObre una sessió de terminal dins la màquina.
vagrant statusMostra l’estat de les màquines del projecte.
vagrant haltApaga la màquina.
vagrant suspend / resumePosa la màquina en pausa i la reprèn.
vagrant reloadReinicia la màquina aplicant els canvis del Vagrantfile.
vagrant provisionTorna a executar els scripts de provisioning en una màquina ja creada.
vagrant destroyElimina la màquina i el seu disc. El Vagrantfile es conserva.
vagrant global-statusLlista totes les màquines Vagrant del sistema.

Un Vagrantfile mínim

Aquest és el fitxer més senzill possible. Defineix una màquina Ubuntu amb 2 GB de memòria i 2 processadors:

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/jammy64"
  config.vm.hostname = "prova"

  config.vm.provider "virtualbox" do |vb|
    vb.memory = 2048
    vb.cpus = 2
  end
end

Cada part té una funció clara: config.vm.box indica el sistema operatiu de partida, hostname posa nom a la màquina i el bloc provider ajusta els recursos de la VM.

Cicle de treball habitual

mkdir el-meu-projecte && cd el-meu-projecte
vagrant init ubuntu/jammy64   # crea el Vagrantfile
vagrant up                    # crea i arrenca la VM
vagrant ssh                   # entra a la VM
exit                          # surt de la VM
vagrant halt                  # apaga la VM
vagrant destroy -f            # l'elimina quan ja no la necessitem
Important: cada projecte viu en la seva pròpia carpeta, amb el seu propi Vagrantfile. Les ordres de Vagrant sempre s’executen des d’aquesta carpeta.

Què necessitem tenir instal·lat

  • Vagrant, la mateixa eina.
  • Un provider, normalment VirtualBox. Segons el sistema operatiu i el processador de l’ordinador (per exemple, en Mac amb Apple Silicon), pot ser necessari un altre proveïdor.
  • Un terminal per escriure les ordres i un editor de text per modificar el Vagrantfile.
Asistent Virtual - Jaranda ✕
Hola! Soc l'assistent de l'Institut Castellbisbal. En què et puc ajudar avui?
💬
0

Subtotal