¿Qué es una box y cómo las obtenemos?

Una box es una imagen base que usamos para crear máquinas virtuales. En este vídeo os cuento cómo obtener las boxes de Vagrant desde el catálogo oficial y desde otros catálogos de terceros.

Este curso ha sido marcado como anticuado y no está siendo revisado de forma activa. Es posible que la información pueda estar desactualizada o que los enlaces se hayan roto.

Cuando trabajamos con Vagrant, una de las claves para entender su facilidad a la hora de crear máquinas virtuales es conocer qué son las boxes. Estas boxes son imágenes base que Vagrant utiliza para generar entornos virtuales listos para usar, evitando que tengamos que descargar ISOs, instalar sistemas operativos desde cero o configurar manualmente cada detalle.

A diferencia de las ISOs tradicionales, las boxes ya vienen preparadas para funcionar con Vagrant. Esto significa que incluyen un usuario creado, las herramientas necesarias para la comunicación con el host y están configuradas para ser clonadas y usadas como plantillas. Así, cuando pedimos a Vagrant que nos cree una máquina con Ubuntu 14.04 o Debian 8, lo que realmente hace es descargar o usar una box que ya tiene todo eso listo, y a partir de ahí clonar esa imagen para crear nuestra máquina virtual personalizada.

Podemos acceder a estas boxes desde el repositorio oficial en la página de Vagrant, donde la comunidad y los propios desarrolladores suben imágenes base de distintos sistemas operativos. Por ejemplo, encontramos imágenes oficiales de Ubuntu Server en varias versiones, Debian, e incluso boxes preparadas para frameworks específicos como Laravel. Además, el buscador nos permite localizar imágenes más específicas, como versiones de 32 bits o variantes creadas por otros usuarios.

La gestión de estas boxes es sencilla desde la línea de comandos. Con vagrant box list podemos ver todas las imágenes que tenemos descargadas en nuestro equipo. Si queremos añadir una nueva, usamos vagrant box add seguido del nombre de la box, por ejemplo:

vagrant box add ubuntu-trusty64

Esto descargará la imagen y la almacenará localmente para que no tengamos que esperar cada vez que creemos una máquina basada en ella. Es recomendable hacer estas descargas con antelación, para no interrumpir nuestro flujo de trabajo cuando estemos creando máquinas virtuales.

No estamos limitados a las boxes oficiales. Cualquier persona puede crear una máquina virtual personalizada, configurarla con el software que necesite y compartirla como una box para que otros la usen. Esto es especialmente útil para entornos de desarrollo específicos, como stacks AMP (Apache, MySQL, PHP) preconfigurados.

Además, existen proveedores externos que ofrecen boxes adicionales. Por ejemplo, Microsoft pone a disposición máquinas virtuales con diferentes versiones de Windows e Internet Explorer para pruebas de compatibilidad, que pueden usarse con Vagrant. También hay sitios como VagrantBox.es donde podemos encontrar una gran variedad de imágenes, desde sistemas BSD hasta versiones antiguas de Windows.

Es importante tener en cuenta que las boxes deben cumplir ciertos requisitos para funcionar correctamente con Vagrant y el proveedor de virtualización que usemos, como VirtualBox. Por ejemplo, deben incluir las guest tools adecuadas para facilitar la comunicación entre la máquina virtual y el host.

Para preparar el entorno y seguir trabajando con Vagrant, podemos descargar una box como la de Ubuntu Trusty 64 con el siguiente comando:

vagrant box add ubuntu-trusty64

Así, cuando creemos nuestra máquina virtual basada en esta imagen, el proceso será mucho más rápido y fluido.

En definitiva, las boxes son la base que hace que Vagrant sea tan práctico y eficiente para crear y gestionar máquinas virtuales, permitiéndonos centrarnos en el desarrollo sin preocuparnos por la configuración inicial del sistema operativo.

Lista de reproducción
  1. 1
    ¿Qué es Vagrant?
    8 minutos
  2. 2
    Instalamos Vagrant
    4 minutos
  3. 3
    ¿Qué es una box y cómo las obtenemos?
    9 minutos
  4. 4
    Iniciar y detener máquinas virtuales
    12 minutos
  5. 5
    Shell scripts de aprovisionamiento
    11 minutos
  6. 6
    Ansible
    11 minutos