Vagrant
Vagrant es un software de código abierto que nos permite crear y mantener entornos de desarrollo portables, puede trabajar con VMware, VirtualBox, Hyper-V, KVM, AWS e incluso también con contenedores de Docker, por tanto, es ideal para simplificar la configuración de estos software de virtualización.
En otras palabras, nos permite gestionar máquinas virtuales desde código...
- Buscar y descargar la base
- Generar archivo base con
vagrant init generic/alpine318 - Arrancar la máquina virtual (y generarla si es necesario)
vagrant up - Actualizar la configuración de la máquina
vagrant provisionovagrant up --provision - Detener la máquina
vagrant halt - Eliminar la máquina
vagrant destroy
Trabajo en casa¶
Método de trabajo: Clase invertida
Investigar en la web como generar el archivo Vagrantfile con las características que vamos a desarrollar en clase.
En clase:¶
Hacer los archivos Vagrantfile (7 distintos) que resuelva los siguientes supuestos:
- Añadir una segunda interfaz de red
- Ponerla en modo
bridge - Añadir 2 mv en un sólo fichero
- Conectar esas 2 mv en una red interna
- Limitar el uso de ram a 512MB
- Limitar el uso de cores a 1
- Instalar el paquete
giten una de las mv
Tip: A veces desde el centro puede tardar en devolvernos la terminal, pero en muchas ocasiones estará disponible para el acceso aunque no al 100%.
Boxes¶
Alpine¶
vagrant init generic/alpine318- Tiene un
inity nosystemd - Puede ser recomendable sustituirlo por
minitpara imágenes multi-procesos - Actualizar paquetes
apk updatey el sistema conapk upgrade - Instalar paquetes
apk add apache2 - Docker:
apk add --update docker openrcy luegorc-update add docker boot
Ubuntu¶
- En el Vagrantfile
config.vm.box = "bento/ubuntu-24.04"yconfig.vm.box_version = "202508.03.0"
UUID¶
Uno de los problemas que podemos tener al generar varias máquinas partiendo desde el mismo box base es que las mismas pueden tener el mismo uuid (machine-id) por lo que al solicitar ip al servidor DHCP pudiera ser que obtengan la misma IP (no todos los dhcp tienen esta funcionalidad).
Para solucionarlo podemos generar un nuevo uuid por una vez y ya tendríamos suficiente, aunque lo ideal será añadirlo al fichero de provision con lo que nos aseguraremos que será ejecutado cada vez que recreemos la vm.
# Generar nuevo uuid
rm -f /etc/machine-id`
dbus-uuidgen --ensure=/etc/machine-id
# Obtenemos nueva IP del DHCP
dhclient -r eth1
dhclient eth1
ip link set eth1 down
ip link set eth1 up
# Fuente: David G.S. - Alumno de ASIR2 curso 23/24