Ana Borrego Toledo

Creació de boxes de vagrant de cada una de les 5 MVs creades

Crear boxes de Vagrant amb l’usuari vagrant

Què és Vagrant i una “box”

  • Vagrant: eina per gestionar màquines virtuals (VMs) de manera fàcil.

  • Box: és una plantilla de màquina virtual, ja configurada, que pots usar per crear noves VMs.

    Exemple: una box pot ser Ubuntu 22.04 amb Python i Docker instal·lats.

VAGRANT CHEAT SHEET


# 1. Arrencar la màquina del projecte actual
vagrant up
# Engega la VM. Si no existeix, la crea a partir de la box configurada al Vagrantfile.

# 2. Apagar la màquina
vagrant halt
# Apaga la VM de manera segura sense eliminar-la.

# 3. Reiniciar la màquina
vagrant reload
# Reinicia la VM i aplica canvis del Vagrantfile 

# 4. Destruir la màquina
vagrant destroy
# Elimina completament la VM creada pel projecte. No toca la box.
# Afegeix -f per forçar sense confirmació:

# 5. Veure l’estat de la màquina
vagrant status
# Mostra si la VM està running, poweroff o saved.

# 6. Connectar-se per SSH
vagrant ssh
# Et connecta a la VM. 

# 7. Veure totes les boxes instal·lades
vagrant box list

# 8. Afegir una box nova
vagrant box add Nom_Box "C:\ruta\Nom_Box.box"

# 9. Esborrar una box
vagrant box remove Nom_Box

# 10. Empaquetar la màquina actual en una box
vagrant package --output "C:\ruta\Nom_Box.box"
# Crea un fitxer .box amb l’estat actual de la VM, que després pots afegir amb vagrant box add.
RockyLinux

Comprovar l’entorn

vagrant --version
vboxmanage --version

Crear un directori per al teu projecte Vagrant

mkdir ~/vagrant-rocky
cd ~/vagrant-rocky

Això crea un fitxer Vagrantfile.

El Vagrantfile és on definim la configuració de la VM (sistema operatiu, memòria, xarxa, etc).

Inicialitzar un Vagrantfile

vagrant init rocky/8
  • rocky/8 → Box pública de Rocky Linux 8.

  • Aquesta comanda crea un fitxer Vagrantfile.

Comprova que existeix. Hauries de veure Vagrantfile a la llista.

ls -l

Revisar i editar el Vagrantfile

vim Vagrantfile

Descarregar la box i aixecar la VM

vagrant up
  • Aquesta comanda descarrega la box si no està local.

  • Aixeca la VM i configura xarxa i recursos.

Comprova l’estat:

vagrant status

Per crear  boxes:

Crea un directori temporal per empaquetar la box:

mkdir C:\VagrantBoxTemp
cd C:\VagrantBoxTemp

Crea un fitxer de configuració mínim de Vagrant (Vagrantfile) si cal:

  • Crea un fitxer anomenat Vagrantfile al directori actual.

  • Aquest fitxer és la configuració de la teva nova màquina Vagrant.

  • generic/ubuntu2004 és la box de base que Vagrant utilitzarà per crear la màquina virtual.

vagrant init generic/ubuntu2004

Ara que tens el Vagrantfile:

vagrant up
  • Vagrant descarregarà la box generic/ubuntu2004 si no la tens ja.

  • Crearà una nova màquina virtual amb aquesta box.

  • Configurarà la VM segons el Vagrantfile (per defecte, només l’usuari vagrant amb SSH).

Ara tindràs una màquina en funcionament dins de la teva VM (o Windows, depenent d’on estàs).

Veure les boxes a la màquina host (Windows)

vagrant box list

Crea un directori temporal per empaquetar la box:

cd $env:USERPROFILE
mkdir vagrant-local
cd vagrant-local

Afegir una box

vagrant box add ubuntu/jammy64

Comprova

vagrant box list

Inicialitzar

vagrant init ubuntu/jammy64

Crear un directori per al teu projecte

mkdir ~/vagrant_test
cd ~/vagrant_test

Afegir una box

Baixa una box oficial d’Ubuntu:

vagrant box add ubuntu/jammy64

Comprova:

vagrant box list

Creació d’un directori de treball

mkdir ~/vagrant_box
cd ~/vagrant_box

Inicialització de la box

S’ha inicialitzat un Vagrantfile amb una box de Debian Bullseye:

vagrant init debian/bullseye64

Afegir la box oficial de Debian Bullseye:

vagrant box add debian/bullseye64

Després es pot comprovar amb:

vagrant box list

1. Creació de les 5 boxes (una per cada MV)

A cada màquina de VirtualBox s’executa:

 

vagrant package --base "Nom_VM" --output nom_vm.box

En el nostre cas:

vagrant package --base "debian" --output debian.box
vagrant package --base "rocky" --output rocky.box
vagrant package --base "ubuntu" --output ubuntu.box
vagrant package --base "w10client" --output w10client.box
vagrant package --base "w2k19" --output w2k19.box

Totes aquestes .box s’han de guardar en una carpeta, per exemple:

 
Box/
├── debian.box
├── rocky.box
├── ubuntumate.box
├── w10.box
└── w2k19.box

Compartir la carpeta amb els altres membres

 
scp -r /home/aborrego/Documents/Boxes nom_usuari@IP_DESTINACIÓ:/home/nom_usuari/Documents/

Cada membre afegeix les boxes al seu Vagrant

 
cd /home/nom_user/Documents/Box
vagrant box add --name debian debian.box
vagrant box add --name rocky rocky.box
vagrant box add --name ubuntu ubuntu.box
vagrant box add --name w10client w10client.box
vagrant box add --name w2k19 w2k19.box

Crear projecte i iniciar.

Per provar una de les boxes:

 

Crear carpeta de projecte:

 
mkdir prova_ubuntu
cd prova_ubuntu

Inicialitzar Vagrant amb la box desitjada:

 
vagrant init ubuntu

iniciar la VM:

 
vagrant up

Errors habituals durant vagrant up:

a) Carpeta /vagrant no creada
The following SSH command responded with a non-zero exit status.
mkdir -p /vagrant
  • Significat: Vagrant no pot crear la carpeta compartida /vagrant.

  • Solució: crear manualment dins la MV:

vagrant ssh
sudo mkdir -p /vagrant
sudo chown vagrant:vagrant /vagrant
exit

La VM funciona igual encara que aparegui aquest error

Com comprovar que pots treballar dins la MV

Entrar per SSH, Provar comandes dins la VM…

vagrant ssh
pwd
ls -la
whoami
mkdir ~/projecte
cd ~/projecte

Tot funciona encara que /vagrant no estigui disponible.