Crear un entorno de desarrollo usando Vagrant.

Hoy quiero ponerme la meta de comenzar aprender algo nuevo. Quizás swarm, kubernetes ….

¡Pero, 🙁 no tengo recursos! Solo una laptop común con un poco de RAM.

¡Le ha sucedido! Si es así Ud. no es el único. No se desanime. Pues llega a su rescate Vagrant.

¿Qué es Vagrant?

Vagrant es un software de código abierto para crear y mantener entornos de desarrollo. Intenta simplificar la gestión de la configuración de software de la virtualización para aumentar la productividad del desarrollo o aprendizaje.

La configuración de la máquina virtual es un simple fichero de texto plano, podemos incluir este fichero en nuestro repositorio en el control de versiones, junto con el resto del código del proyecto. De esta manera, un nuevo desarrollador o un amigo que se incorpore simplemente tendrá que clonar el repositorio del proyecto y ejecutar Vagrant para tener el entorno de desarrollo montado y funcionando en cuestión de minutos.

Crearemos un entorno de desarrollo reproducible. Tendrá todo lo necesario para aprender, probar. Mostraremos lo fácil que es levantar un clúster docker swarm. Aplicando este mismo conocimiento podrías reproducir el entorno que desees incluso un clúster de kubernetes para probar cosas. Si usas tus habilidades de ingenio podrás sacar el máximo de provecho con lo que dispones.

Requerimientos:

  • Disponer de conexión a internet.
  • Una computadora.

Para no hacer tan largo el tutorial usaremos el proveedor por defecto que es Virtualbox*. Pero puedes usar otros tal como VMware,  Hyper-V, KVM, AWS y si tienes pocos recursos libvirt.

Nota: Estaré usando en esta guía el box de Bento/Ubuntu 20.04 tamaño 512.9 MB. Puede visitar el sitio para escoger la instalación acorde a tu Sistema operativo.

¿Quieres hacer y usar tu propio box?  Al final de este post te doy un resumen de los pasos a seguir.

Instalación:

En Ubuntu/Debian lo instalaremos así:

  •  Desde el repo oficial de hashicorp

  • Instalando desde el repo de UCLV desde la red de cuba

Verifiquemos la versión:

Nota: El proveedor que usaremos será Virtualbox. Si no lo tienes instalado debería hacerlo ahora. No es nuestro objetivo enseñar a instalarlo. En internet encontraras las guías para eso. Pero normalmente es solo ejecutar:

Box

  • La lista de box las podrás encontrar aquí.

Si deseas descargar el box manualmente use este link.

Para cargarlo ejecutamos el siguiente comando.

Si lo vas a bajar directo de internet

Llegado a este punto vamos a crear nuestro entorno de desarrollo.

Nota: Si prefieres saltarte el paso y descargar todo puedes hacerlo clonando el recurso.

Entorno de desarrollo

  • Creamos la carpeta de trabajo

Estructura del proyecto de como debe quedar.

  • Creamos el archivo Vagrantfile

  • Creamos el archivo provision_base

  • Creamos el archivo manager

  • Creamos el archivo worker

Explicación de algunos ajustes que quedan a su valoración:

  1. En el archivo Vagranfile usted puede ajustar estos valores que los declare como variables:

 Si usa proxy escriba la ip del mismo y el puerto. Sino deje solamente las comillas

Puedes ajustar los recursos que serán asignados al manager y a los nodos

Puedes ajustar la cantidad de worker que deseas que se creen y unan al clúster swarm

Puedes ajustar la tarjeta que usaras como bridge. Si no tienes dhcp en tu red puedes asignar la ip directamente de esta forma:

2. En el archivo provision_base.sh usted puede ajustar estos valores 

Levantamos nuestro entorno de desarrollo.

El resultado sería algo así.

Tardará unos minutos en dependencia de la velocidad del internet y de la cantidad de nodos worker que le hayamos configurado.

Validemos que tengamos corriendo 1 manager y los nodos que le pusimos en el archivo Vagranfile en  WORKER_COUNT =  (número de línea 32).

Conectarnos al manager

Swarm

En un clúster de Swarm existen dos tipos de nodo, los Manager y los Worker.

Manager: Es el responsable de gestionar los nodos del cluster, distribuir las tareas y encargarse de mantener el estado del clúster. Si hay mas de un Manager entre todos se elige automáticamente un líder. Por defecto también actúan como nodos Worker aunque se puede cambiar su configuración para que sólo asuman tareas de Manager.

Worker: Estos son los responsables de ejecutar las tareas que el manager le indica, creando y ejecutando los contenedores.

Comprobemos que el clúster está activo usando el comando

  • Despleguemos 2 servicios sencillos con 4 replicas

Usando docker cli

Accedemos a él abriendo nuestro navegador http://ipdelbridge

Si ejecutamos el comando curl al servicio del whoami veremos cómo nos responde los diferentes replicas

Llegaste hasta acá cierto? Pero quizás escuchas el siguiente pretexto.

Pero necesitas internet para descargar un dichoso box y que pesa unos 512 MB. Eso no es muy factible. etc. etc etc.

Y te hago la pregunta. ¿Por qué descargar un box? ¿Por qué no lo haces tú mismo? 🙂

Eres de la vieja escuela que tienes que instalar el sistema tú mismo. Pues acá tienes los pasos.

  • Crear la máquina virtual en Virtualbox, con estas características:

Disco duro expandible de entre 40 a 100 GB

RAM comprendida entre 360 a 512 MB

Deshabilitar todos los recursos que no se vayan a utilizar.

La primera interfaz de red debe ser NAT

  •  Configurar el Sistema Operativo, con estas características:

Crear el usuario vagrant, debe ser administrador con el comando sudoer.

  • Instalar un servidor SSH 
  • Instalar las Virtualbox additions, para optimizar la vm
  • Instalar nfs o smb, si queremos utilizar directorios compartidos o sincronizados
  • Optimizar hdd de la box final, para lo que podemos:

Eliminar paquetes innecesarios:

Llenar con ceros el disco virtual y eliminar espacio sobrante:

Ya tenemos el disco reducido y optimizado.

  • Empaquetar la box

Listar las box:

Agregar un box local:

LISTOOOOOOOOO

Ya tienes tu box. Hecho por ti mismo.

¿Pero? Que Ubuntu consume mucho. Tengo poca RAM.

Bájate el box de alpine. O créate tú mismo como hice yo mi box de alpine. Los pasos son los mismo solo que cambiando el uso de apt por apk. (Bueno y más que otros ajustillos)

No más escusa amigo.  ¡Bien! 🙂

Estas son las nociones básicas. Si deseas puedes leer más en la web oficial de vagrant. Este tutorial es un aporte de Argenis Ochoa González(AKA @linux8a) que continuará regalándonos más sobre Docker.

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 4.8 / 5. Recuento de votos: 10

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Sobre Alexander Rivas Alpizar 61 artículos
Administrador de Redes EMPRESTUR Cienfuegos

Sé el primero en comentar

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.


*