Ana Borrego Toledo

Adaptar les mv's perquè puguin ser compatibles amb vagrant

1) Preparar l’entorn: què necessites

  • VirtualBox  — crearà les VM.

  • Vagrant — gestiona boxes i provisioning.

Ubuntu i Debian

Instal·lar VirtualBox i Vagrant a Ubuntu / Debian (Terminal)

  1. Obre terminal.

  2. Actualitza i instal·la VirtualBox i Vagrant amb les següents comandes 

sudo apt update
sudo apt upgrade -y
sudo apt install -y virtualbox vagrant

Comprovem: 

virtualbox --help 
vagrant --version

Ubuntu

Debian

Instal·lació Virtual Box

Actualitza

sudo dnf update -y

Afegir manualment la clau i el repositori d’Oracle

Després crea el fitxer del repositori manualment:

sudo nano /etc/yum.repos.d/virtualbox.repo

Desa i tanca (Ctrl + O, Enter, Ctrl + X), i després:

sudo wget https://www.virtualbox.org/download/oracle_vbox.asc -O /etc/pki/rpm-gpg/RPM-GPG-KEY-Oracle

Neteja i actualitza la memòria cau:

sudo dnf clean all
sudo dnf makecache

Instal·la VirtualBox

sudo dnf install -y VirtualBox-7.0
ERROR

Desactivar la verificació del repo metadata

sudo nano /etc/yum.repos.d/virtualbox.repo

Canvia aquesta línia: repo_gpgcheck=1 per repo_gpgcheck=0

i ara:

sudo dnf clean all
sudo dnf makecache
sudo dnf install -y VirtualBox-7.0

Instal·lació de Vagrant

Ves a la pàgina oficial de descàrrega de Vagrant

Per exemple, a la terminal:

curl -O https://releases.hashicorp.com/vagrant/2.4.1/vagrant_2.4.1_x86_64.rpm

Instal·la el paquet amb DNF

sudo dnf install -y ./vagrant_2.4.1_x86_64.rpm

Comprovació

vagrant --version

Instal·lació Vagrant i VirtualBox a Windows 10 i Windows 2019

Instal·lació de VirtualBox

Es va descarregar la versió per Windows des de https://www.virtualbox.org/wiki/Downloads

  • Es va executar l’instal·lador.

Error trobat a la màquina w10:

Needs the Microsoft Visual C++ 2019 Redistributable package being installed first

Explicació:
VirtualBox necessita el Microsoft Visual C++ 2019 Redistributable per funcionar correctament. Sense aquest paquet, la instal·lació no es pot completar.


Solució:

Instal·lar Microsoft Visual C++ 2019 Redistributable

Es va descarregar des de la pàgina oficial: https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist

  1. S’han executat els fitxers:

    • vc_redist.x64.exe (per a sistemes de 64 bits)

    • vc_redist.x86.exe (opcional)

  2. Es va acceptar el contracte de llicència i es va completar la instal·lació.

  3. S’ha reiniciat el Windows per completar la instal·lació.

Comprovació de l’instalació de Microsoft Visual C++ 2019 Redistributable:

  • Al Control Panel → Programs → Programs and Features, apareix Microsoft Visual C++ 2019 Redistributable (x64).

Instal·lació de VirtualBox

Passos:

  1. Obre el navegador i ves a la pàgina oficial:
    https://www.virtualbox.org/wiki/Downloads

  2. Descarrega l’instal·lador per Windows hosts.
  3. Completa la instal·lació i obre VirtualBox per comprovar que funciona

W10


Instal·lació de Vagrant

Passos:

    1. Ves a https://www.vagrantup.com/downloads

    2. Descarrega la versió per Windows.

    3. Executa l’instal·lador amb les opcions per defecte.

    4. Un cop instal·lat, obre un terminal (PowerShell o CMD) i comprova la instal·lació:

vagrant --version

w10


Instal·lació de Vagrant a Windows Server 2019

Intent de descàrrega des del navegador

Durant la instal·lació, s’ha intentat accedir a la pàgina oficial de Vagrant (https://www.vagrantup.com/downloads

Error mostrat:

Content from the website listed is being blocked by the Internet Explorer Enhanced Security Configuration.

Aquest error apareix perquè Internet Explorer Enhanced Security Configuration (IE ESC) està activat per defecte a Windows Server 2019.
Aquesta configuració bloqueja la descàrrega de fitxers des de webs externes per motius de seguretat, i per tant impedeix descarregar l’instal·lador de Vagrant.

Solució: descàrrega amb PowerShell

Per evitar el bloqueig del navegador, s’ha optat per descarregar el fitxer d’instal·lació directament amb PowerShell, sense necessitat de desactivar la seguretat del servidor.

Passos seguits:

  1. Obrir PowerShell com a administrador.

  2. Executar l’ordre següent per descarregar Vagrant:

Invoke-WebRequest -Uri "https://releases.hashicorp.com/vagrant/2.4.1/vagrant_2.4.1_windows_amd64.msi" -OutFile "C:\vagrant.msi"

Durant el procés, PowerShell mostra el missatge; 

Aquest missatge no és un error, sinó un indicador de progrés mentre es descarrega el fitxer

Writing web request stream... Number of bytes written: ...

Un cop completada la descàrrega, comprovar que el fitxer existeix

→ Si retorna True, la descàrrega s’ha fet correctament.

Test-Path C:\vagrant.msi

Instal·lar el programa:

Start-Process "C:\vagrant.msi" -Wait

Comprovar la instal·lació:

vagrant --version

Resum del següent pas

  1. Crear usuari vagrant i afegir-lo a sudo.

  2. Donar permisos sudo sense contrasenya.

  3. Configurar SSH amb la clau pública oficial.

  4. Comprovar sshd i permisos.

  5. (Opcional) muntar /vagrant.

Ubuntu

Crear l’usuari i donar permisos

Crea l’usuari vagrant, afegeix-lo al grup sudo i permet que pugui fer ordres sudo sense contrasenya.

 
sudo adduser vagrant
sudo usermod -aG sudo vagrant
echo "vagrant ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/vagrant

COMPROVACIÓ

 
id vagrant
sudo -l -U vagrant

Configurar l’accés SSH

Prepara el directori .ssh i afegeix la clau pública oficial de Vagrant per permetre l’accés automàtic.

 
sudo mkdir -p /home/vagrant/.ssh
curl -L https://raw.githubusercontent.com/hashicorp/vagrant/master/keys/vagrant.pub \
  | sudo tee /home/vagrant/.ssh/authorized_keys
sudo chmod 600 /home/vagrant/.ssh/authorized_keys
sudo chmod 700 /home/vagrant/.ssh
sudo chown -R vagrant:vagrant /home/vagrant/.ssh

COMPROVACIÓ

 
ls -ld /home/vagrant/.ssh
ls -l /home/vagrant/.ssh/authorized_keys

Crear l’usuari vagrant i afegir-lo al grup d’administradors

 
sudo useradd -m -s /bin/bash vagrant
echo "vagrant:vagrant" | sudo chpasswd
sudo usermod -aG wheel vagrant

COMPROVACIÓ

id vagrant
groups vagrant

Configurar SSH per l’usuari vagrant

 
sudo mkdir -p /home/vagrant/.ssh
sudo chmod 700 /home/vagrant/.ssh
cd /home/vagrant/.ssh
sudo wget https://raw.githubusercontent.com/hashicorp/vagrant/main/keys/vagrant.pub -O authorized_keys
sudo chmod 600 authorized_keys
sudo chown -R vagrant:vagrant /home/vagrant/.ssh

COMPROVACIÓ

ls -ld /home/vagrant/.ssh
ls -l /home/vagrant/.ssh/authorized_keys
cat /home/vagrant/.ssh/authorized_keys

connexió SSH sense contrasenya

ssh vagrant@localhost

Crear un usuari local “vagrant

net user vagrant vagrant /add
net localgroup Administrators vagrant /add

COMPROVACIÓ

net user vagrant

Comprovar que l’usuari és administrador

net localgroup Administrators

Configurar SSH

mkdir C:\Users\vagrant\.ssh

Comprovar que la carpeta .ssh existeix

Test-Path C:\Users\vagrant\.ssh

Descarrega la clau pública de Vagrant:

Invoke-WebRequest -Uri https://raw.githubusercontent.com/hashicorp/vagrant/main/keys/vagrant.pub -OutFile C:\Users\vagrant\.ssh\authorized_keys

Assigna permisos correctes:

icacls C:\Users\vagrant\.ssh\authorized_keys /inheritance:r
icacls C:\Users\vagrant\.ssh\authorized_keys /grant:vagrant:(R)

Provar connexió SSH local

ssh vagrant@localhost
  1. Crear usuari local vagrant

Obre PowerShell com a administrador i executa:

New-LocalUser -Name "vagrant" -Password (ConvertTo-SecureString "vagrant" -AsPlainText -Force) -FullName "Vagrant User" -Description "Usuari creat per Vagrant"
if (Get-LocalUser -Name "vagrant" -ErrorAction SilentlyContinue) { Write-Host "Usuari vagrant creat/existeix" }

COMPROVACIÓ

Get-LocalUser -Name "vagrant" | Format-List Name,Enabled

2. Donar rol com administrador

Add-LocalGroupMember -Group "Administrators" -Member "vagrant"

COMPROVACIÓ

3. Evitar canvi obligatori de contrasenya / que caduqui

Set-LocalUser -Name "vagrant" -PasswordNeverExpires $true

COMPROVACIÓ

Get-LocalUser -Name "vagrant" | Select-Object Name,PasswordNeverExpires

Habilitar WinRM (Windows Remote Management

Configura WinRM bàsic:

winrm quickconfig -q

Permet connexions sense xifrar (només per entorns de prova):

winrm set winrm/config/service '@{AllowUnencrypted="true"}'

Activa autenticació bàsica:

winrm set winrm/config/service/auth '@{Basic="true"}'

Configura el servei WinRM perquè s’iniciï automàticament:

Set-Service winrm -StartMode Auto

Obre el tallafoc per permetre WinRM:

netsh advfirewall firewall set rule group="Windows Remote Management" new enable=yes

Verificació final

Test-WSMan localhost

Crear l’usuari vagrant amb permisos sudo

 
sudo useradd -m -s /bin/bash vagrant
echo "vagrant:vagrant" | sudo chpasswd
sudo usermod -aG sudo vagrant

crea un nou usuari.

canvia la contrasenya de l’usuari.

afegeix l’usuari al grup sudo sense eliminar grups existents.

Comprovació

 
id vagrant
groups vagrant

Hauries de veure que l’usuari vagrant existeix i forma part del grup sudo.

Configurar SSH per a Vagrant

 

Crear el directori .ssh per l’usuari vagrant

 
sudo mkdir -p /home/vagrant/.ssh

Assignar permisos correctes al directori .ssh

 
sudo chmod 700 /home/vagrant/.ssh

Entrar al dircetori .ssh

 
cd /home/vagrant/.ssh

Descarregar la clau pública oficial de Vagrant

 
sudo wget https://raw.githubusercontent.com/hashicorp/vagrant/main/keys/vagrant.pub -O authorized_keys

Assignar permisos al fitxer authorized_keys

sudo chmod 600 authorized_keys

Assignar propietat de .ssh i contingut a l’usuari vagrant

sudo chown -R vagrant:vagrant /home/vagrant/.ssh

Comprovacions

ls -la /home/vagrant/.ssh

Hauries de veure:

  • .ssh → drwx—— (700)

  • authorized_keys → -rw——- (600)

Provar connexió SSH local

sudo -u vagrant ssh -i /home/vagrant/.ssh/authorized_keys vagrant@localhost

Fer compatibles les MVs de VirtualBox amb Vagrant:

Llistar les MVs existents

VBoxManage list vms

Convertir la MV en un fitxer .box

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

A cadascuna de les màquines de VirtualBox:

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

Com ocupen massa espai els fitxers, em pujat els .box al Drive comú

  • Creeu una carpeta compartida (ex. Boxes_Vagrant_Grup).

  • Pugeu-hi tots els .box.

  • Poseu noms clars als fitxers (ex. rocky.box, ubuntu_mate.box, debian.box).

Cada membre pot baixar el .box que necessiti

Afegir la box a Vagrant

Ara cada membre pot baixar el .box que necessiti

Quan algú vulgui usar una màquina concreta, la descarga del Drive i afegeix la box a Vagrant:

vagrant box add nom_box1 nom_box2.box

exemple:

vagrant box add ubuntu ubuntu_mate.box

És normal que la comanda tardi bastant, sobretot si la MV és gran (té molts GB de disc o snapshots).

Crear el projecte de Vagrant

Anem al directori on tenim les boxes.

cd ~/Documents/Boxes  

Creem la carpeta per la nostra box i un cop dins:

mkdir box_ubuntu
cd ~/Documents/Boxes/box_ubuntu

Inicialitzar el Vagrantfile per cada projecte

vagrant init ubuntu

Executar fitxer

vagrant up