Utilizando Vagrant con VirtualBox en Debian 12
11:14, 21.02.2024
Con Vagrant se puede crear un entorno de desarrollo perfecto. Crea la automatización y el flujo de trabajo ideal, mientras que al mismo tiempo, es posible disminuir el tiempo dedicado a la configuración. Basándonos en nuestra experiencia práctica, podemos asegurar que Vagrant, además de los beneficios ya mencionados, también mejora el nivel de producción y desarrollo.
Aplicaciones prácticas de Vagrant
Para alcanzar un cierto nivel de flexibilidad y un mayor rendimiento, Vagrant crea un entorno de trabajo ideal. Este entorno es reproducible, fácil de configurar y bastante portátil. Por lo tanto, ese equipo puede tener acceso a un único proceso consistente con tecnologías estándar de la industria.
Vagrant funciona gracias a gigantes como KVM, Docker, VirtualBox, VMware y otros proveedores. Con la ayuda de Puppet, Chef, o shell scripts, la máquina virtual puede ser configurada, e instalada automáticamente.
Casos de uso de Vagrant:
- Aislamiento de entornos de desarrollo.
- Pruebas de IaC.
- Pruebas de sistemas distribuidos.
- Desarrollo de aplicaciones web.
- Despliegue continuo e integración continua.
- Colaboración de equipos.
- Pruebas y desarrollo en la nube.
En este artículo, vamos a tratar de compartir nuestro conocimiento práctico en el campo con instrucciones detalladas sobre cómo utilizar Vagrant con KVM y VirtualBox. Estos son 2 proveedores principales para Vagrant. Después de revisar un par de instrucciones, usted podría determinar fácilmente el más adecuado para usted.
Uso de Vagrant junto con VirtualBox en Debian 12
Antes de discutir el proceso real de instalación en Debian 12, vamos a obtener algo de información teórica sobre VirtualBox. Para empezar, es un hipervisor gratuito y de código abierto que ayuda a ejecutar una VM (máquina virtual) en la máquina anfitriona sin influir realmente en el sistema operativo anfitrión. El sistema operativo se denomina después de la instalación de VirtualBox como "Host Operating system". El SO que se ejecuta bajo la máquina virtual VirtualBox se denomina "Huésped".
La mayor ventaja de VirtualBox es la superación de las capacidades técnicas de cualquier máquina. Es posible ejecutar varios SO en varias máquinas virtuales al mismo tiempo. Por ejemplo, los usuarios pueden probar y ejecutar cualquier sistema Linux y Windows simultáneamente en el MacBook sin necesidad de comprometer la configuración del sistema y las aplicaciones.
Con la ayuda de esta herramienta, es posible operar tantas VMs como sea posible en función de los discos y el espacio de memoria. Para uso personal, es posible utilizar una versión gratuita, pero se recomienda a los clientes comerciales obtener una licencia para uso empresarial. El precio puede variar en función del número de usuarios y del periodo de funcionamiento de la licencia.
Ahora continuemos con procesos más prácticos. Para instalar Vagrant en Debian 12 con VirtualBox, sólo tienes que seguir un par de sencillos pasos.
1. Instalación de VirtualBox
Antes de la instalación de Vagrant, debes instalar el proveedor en este caso VirtualBox. Una vez que haya completado este paso, puede iniciar el siguiente.
2. Configuración de Vagrant
La instalación de Vagrant se inicia con el siguiente comando:
sudo apt -y install apt-transport-https ca-certificates curl software-properties-common
Una vez hecho esto, puede importar claves GPG escribiendo lo siguiente:
wget -O- https://apt.releases.hashicorp.com/gpg | gpg --dearmor | sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg
En este punto, el repositorio oficial de APT está en su máquina y hay un paso más antes de la instalación real de Vagrant.
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
La instalación de Vagrant se realiza mediante un simple comando:
sudo apt update
sudo apt install vagrant
Lo último que hay que hacer es verificar la versión por:
$ vagrant --version
3. Implementación de Vagrant
En la etapa de implementación, hemos decidido compartir un par de comandos con la ayuda de los cuales se puede obtener un entorno de desarrollo perfecto. Para empezar, usted necesita para crear un archivo en el que tendrá el archivo Vagrant.
mkdir ~/vagrant-project
La siguiente cosa es la elección de la caja para utilizar en su sistema con el fin de establecer un nuevo archivo Vagrant. Para conseguir esta caja, necesitarás visitar un sitio oficial y conseguir una. Aquí mostraremos cómo es el proceso con generic/ubuntu2204.
Para la creación del archivo utilice el siguiente comando:
cd ~/vagrant-project
vagrant init generic/ubuntu2204
Una vez que todo se haya completado, verá una notificación de que el archivo fue colocado en el directorio y dónde obtener más información sobre el uso de Vagrant.
Después de la creación del archivo, utilice cualquier editor de texto para realizar algunas modificaciones en el sistema Debian.
sudo vim Vagrantfile
Para la creación de la configuración utilice lo siguiente:
vagrant up
Acceso a máquinas virtuales
El acceso y la conexión a las máquinas virtuales operativas están disponibles a través de SSH. Comience con dicho comando:
vagrant ssh
Para mostrar el estado de las máquinas virtuales se necesita el:
vagrant status
Para mostrar el estado de todos los entornos virtuales utilice:
vagrant global-status
Para el apagado necesitará el siguiente comando:
$ vagrant halt
Para la hibernación de máquinas virtuales utilizar:
$ vagrant suspend
La restauración de las máquinas virtuales a su estado original tiene el siguiente aspecto:
$ vagrant destroy
Utilizando Vagrant con KVM
Ahora que entiende todo el proceso de uso de Vagrant con VirtualBox, vamos a hablar de otro posible escenario.
Como ya está claro, Vagrant no es independiente, se utiliza en combinación con varios otros proveedores como Docker, VirtualBox (ya discutido), KVM, y VMWare. VirtualBox se considera un proveedor por defecto, así que vamos a discutir otra gran opción - KVM.
Esta tecnología de código abierto está diseñada específicamente para usuarios de Linux. Con esta tecnología de virtualización, es posible ejecutar entornos múltiples y aislados. KVM forma parte del código de Linux, lo que significa que los usuarios recibirán nuevos avances, funciones y correcciones sin necesidad de ingeniería adicional.
Dado que KVM forma parte del núcleo de Linux, componentes como el programador de procesos, el gestor de memoria, el controlador de dispositivos, la pila de red, etc., ya están presentes. Cada máquina virtual se implementa como un proceso estándar con hardware dedicado, con el uso de un planificador, memoria, CPU y discos estándar.
Las principales ventajas de esta herramienta son un mayor rendimiento, escalabilidad, seguridad y, por supuesto, rentabilidad. Ahora que tienes algunos conocimientos básicos, vamos a discutir el proceso real de instalación de KVM. Este es un proceso relativamente simple y no requerirá mucho tiempo por parte de los usuarios.
1. Configuración de KVM en Debian 12
Comience con la instalación de KVM en su máquina. A continuación, agregue el usuario con el siguiente comando:
sudo usermod -a -G libvirt <nombredeusuarioreal>
Cuando el proveedor esté instalado, puedes continuar con el siguiente paso.
2. Instalación del plugin vagrant-libvirt
El plugin vagrant-libvirt debe ser instalado antes del uso de KVM. Este plugin es necesario para el aprovisionamiento y control de máquinas con Vibvirt.
Para iniciar el proceso, primero necesita las dependencias:
sudo apt install build-essential
El siguiente comando es necesario para la instalación del plugin:
vagrant plugin install vagrant-libvirt
Además, es importante tener el plugin agrant-mutate, que se encarga de cambiar las cajas y trabajar con diferentes proveedores. Por lo tanto, se debe utilizar el siguiente comando:
vagrant plugin install vagrant-mutate
3. Utilización de Vagrant a través del proveedor KVM de Libvirt
En primer lugar, es importante determinar si la caja Vagrant elegida soporta el proveedor libvirt. Esto se puede hacer en el repositorio de la nube. Sólo tiene que seleccionar "libvirt" para entender qué cajas son compatibles.
Aquí en esta parte, vamos a utilizar CentOS 9 caja.
Comience con la configuración del entorno con los siguientes comandos:
mkdir mi_vagrant
cd mi_vagrant
vagrant init generic/centos9s
Luego lance la máquina con el siguiente comando:
vagrant up --provider=libvirt
Con este comando específico, la máquina virtual se ejecuta con libvirt KVM. Por lo tanto, el KVM sirve como la opción por defecto. La salida de estos comandos, normalmente incluye una variedad de características por defecto como CPUs, nombre, característica, tipo de dominio, descripción, memoria, caja base, y otros.
Para el uso indefinido de este proveedor específico por defecto, puede escribir el siguiente comando:
export VAGRANT_DEFAULT_PROVIDER=libvirt
Para la confirmación utilice un programa como Virt-manager, este es un programa GUI de administración perfecto.
Ahora procedamos con un par de comandos adicionales útiles:
- Para el reinicio de la máquina virtual utilice
vagrant reload
- Para listar cajas usa:
vagrant box list
- Para obtener información sobre si la caja está desactualizada, escribe
cd mis_vagrantes/
vagrant box outdated
- Para actualizar las cajas usa
vagrant box update
- Para descargar cajas utilice lo siguiente:
vagrant box add <box>
- Para comprobar el tamaño de las cajas utilizar el:
ls ~/.vagrant.d/boxes
Estos son todos los comandos básicos que un usuario debe tener para instalar y gestionar el sistema con éxito. Otras cosas suelen ser opcionales.
Reflexiones finales
Aquí en este artículo, hemos mencionado los pasos más importantes que los usuarios deben seguir para utilizar Vagrant en KVM y VirtualBox. Esperamos que nuestros conocimientos prácticos en este campo te ayuden a entender un poco más el proceso e intentes repetir las instrucciones de esta guía. La combinación de KVM/VirtualBox y Vagrant crea un entorno ideal para pruebas y desarrollo. Con la ayuda de estas tecnologías, es posible aumentar la eficiencia y crear una integración fluida para el desarrollo de software.