Vagrant

Vagrant és una eina de codi obert creada per HashiCorp que permet crear i gestionar entorns de desenvolupament virtualitzats de manera automatitzada i reproduïble.

1. La idea principal

En lloc de configurar manualment una màquina virtual cada vegada, Vagrant et permet descriure l’entorn en un fitxer de text (Vagrantfile) i aixecar-lo amb una sola ordre.

2. Com funciona

Vagrant actua com una capa d’abstracció per sobre dels proveïdors de virtualització:

El flux bàsic és

Vagrantfile  →  vagrant up  →  Màquina virtual llesta i configurada

3. Conceptes clau

4. Per a què serveix

Per al context educatiu de xarxes i sistemes, Vagrant és especialment útil perquè permet aixecar múltiples màquines virtuals interconnectades amb una sola ordre.

5. Instal·lació

wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg

echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] \
https://apt.releases.hashicorp.com $(lsb_release -cs) main" | \
sudo tee /etc/apt/sources.list.d/hashicorp.list

sudo apt update 

sudo apt install vagrant

6. Ordres essencials

vagrant init ubuntu/jammy64   # Crear un Vagrantfile bàsic
vagrant up                    # Crear i arrencar la VM
vagrant ssh                   # Connectar-se per SSH
vagrant halt                  # Apagar la VM
vagrant suspend               # Suspendre (guardar estat)
vagrant resume                # Reprendre
vagrant reload                # Reiniciar i reaplicar config
vagrant provision             # Tornar a executar els provisioners
vagrant destroy               # Eliminar la VM completament
vagrant status                # Estat de la VM
vagrant global-status         # Estat de totes les VMs del sistema

7. Vagrantfile

És un fitxer Ruby que descriu la màquina virtual. Aquest és un exemple de configuració. Pots trobar més informació a Documentació de Vagrantfile

Vagrant.configure("2") do |config|

  # Defineix la imatge (box) base que utilitzarà
  config.vm.box = "ubuntu/jammy64"
  
  # Configura l'adreça IP privada
  config.vm.network "private_network", ip: "192.168.56.10"

  # Assigna recursos de maquinari
  config.vm.provider "virtualbox" do |vb|
    vb.memory = "2048"
    vb.cpus = 2
  end

  # Executa un script bash automàticament durant el primer desplegament
  config.vm.provision "shell", inline: <<-SHELL
    apt-get update
    apt-get install -y apache2
  SHELL
end

Catàleg de màquines disponibles

Versions d’aquest document

Domini Públic (CC0)