Guía completa para instalar y usar Vagrant en Hyper-V en Windows 11

Última actualización: 08/04/2025

  • Vagrant es compatible con Hyper-V desde Windows 8.1 o superior y facilita entornos reproducibles
  • Instalar y configurar Vagrant en Hyper-V requiere ajustes específicos en red y aprovisionamiento
  • Hyper-V no permite ciertas funciones como IPs estáticas fácilmente, pero hay soluciones complementarias
  • Se recomienda usar imágenes 'boxes' compatibles con Hyper-V para evitar errores de arranque
instalar Vagrant en Hyper-V-1

 

De entrada, montar entornos virtuales de forma rápida y ordenada en Windows parece una misión compleja. Por suerte, contamos con herramientas como Vagrant en Hyper-V para hacerlo posible. Y aunque su uso está más asociado a VirtualBox, también es plenamente compatible con esta tecnología de virtualización que ya viene integrada en muchas versiones de Windows.

A pesar de eso, instalar y configurar Vagrant en Hyper-V no es tan fácil como parece. Hay pasos clave y peculiaridades del proveedor de virtualización de Microsoft que debes conocer. En este artículo te acercamos todo lo necesario para que pongas en marcha entornos virtuales siguiendo esta fórmula y sin contratiempos.

¿Qué es Vagrant y por qué usar Hyper-V?

Vagrant es una herramienta de código abierto que permite construir entornos virtuales reproducibles y portables a través de simples ficheros de configuración. Está pensada para desarrolladores, administradores de sistemas o cualquier persona que necesite entornos consistentes entre equipos, con soporte para múltiples sistemas operativos.

Por su parte, Hyper-V es el hipervisor nativo de Microsoft, incluido en versiones Professional, Enterprise y Education de Windows 8.1 en adelante. Ofrece un alto rendimiento y estabilidad, especialmente útil cuando otros hipervisores como VirtualBox generan conflictos en entornos Windows modernos.

Uno de los motivos más comunes para optar por Hyper-V en lugar de VirtualBox es que algunos productos, como Docker Desktop o WSL2 (subsistema de Linux para Windows), necesitan que Hyper-V esté activado. Esto genera incompatibilidades con VirtualBox, lo cual convierte a Hyper-V en la única solución válida si no queremos estar activando y desactivando servicios.

Contenido exclusivo - Clic Aquí  ¿Puedo ver el historial de solicitudes de dinero en Cash App?

Ventajas de usar Vagrant con Hyper-V

Instalación de Vagrant y habilitación de Hyper-V

Antes de comenzar a usar Vagrant en Hyper-V, asegúrate de que tu equipo tiene Hyper-V activado. Cuidado, porque no suele estar habilitado por defecto. Lo puedes hacer manualmente desde la sección “Activar características de Windows” o con el siguiente comando en PowerShell (como administrador):

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All

Tras ejecutar este comando, se requiere reiniciar el ordenador para que los cambios surtan efecto.

En paralelo, debes descargar e instalar Vagrant desde la web oficial. El instalador incluye todo lo necesario para que puedas usar el comando vagrant directamente desde cualquier terminal.

Una vez instalado, puedes verificar que todo esté correcto ejecutando en la terminal:

vagrant --version

Este comando debería devolverte la versión instalada, por ejemplo Vagrant 2.4.0.

Primer paso: preparar un entorno base

Vagrant se basa en “boxes”, que son imágenes base de sistemas operativos preinstalados. Estas se descargan automáticamente desde el index público conocido como Vagrant Cloud. Para comenzar, necesitas crear una carpeta donde trabajarás con tu proyecto. Por ejemplo:

mkdir mi_proyecto_vagrant
cd mi_proyecto_vagrant
vagrant init generic/alpine36

Este comando generará un fichero llamado Vagrantfile que es donde reside toda la configuración de la máquina virtual. Dentro de él deberás ajustar algunos parámetros clave para utilizar Hyper-V.

Vagrant en Hyper-V

Configuración del proveedor Hyper-V

De forma predeterminada, Vagrant intentará usar VirtualBox como proveedor. Para usar Hyper-V, puedes indicarlo cada vez lanzando:

vagrant up --provider=hyperv

O bien, establecer Hyper-V como proveedor por defecto configurando una variable de entorno:

$env:VAGRANT_DEFAULT_PROVIDER="hyperv"

Este paso se puede hacer desde PowerShell o directamente en tus variables de entorno del sistema.

Contenido exclusivo - Clic Aquí  Cómo grabar un CD gratis

Dentro del Vagrantfile, se recomienda especificar el proveedor con configuraciones específicas. Un ejemplo básico sería:

Vagrant.configure("2") do |config|
  config.vm.box = "generic/alpine36"
  config.vm.provider "hyperv" do |h|
    h.vmname = "mi_vm_hyperv"
    h.memory = 2048
    h.cpus = 2
  end
end

Estos parámetros permiten asignar memoria RAM, cantidad de núcleos y el nombre que tendrá la máquina en Hyper-V.

Redes y conectividad en Hyper-V

Uno de los puntos débiles de Hyper-V en Vagrant es que no configura automáticamente la red. Por ello deberás seleccionar manualmente un vSwitch con conectividad externa ya creada en Hyper-V.

Para asociar una red privada o seleccionar un vSwitch concreto, puedes usar:

config.vm.network "private_network", bridge: "NombreDelvSwitch"

Ten en cuenta que Hyper-V no permite configurar directamente IPs estáticas desde Vagrant, por lo que se deben establecer mediante scripts o modificando los ajustes del sistema operativo invitado.

 

hyper-v

Acceso a la máquina: SSH y otras herramientas

Aunque parezca que en Windows no se puede usar SSH, Vagrant incluye un cliente SSH integrado, por lo que puedes acceder sin necesidad de instalar programas adicionales.

Accede con:

vagrant ssh

También puedes usar PuTTY, pero en ese caso necesitarás convertir la clave privada que genera Vagrant en formato PPK (con PuTTYgen), ya que no es compatible directamente. La clave está ubicada en:

.vagrant/machines/default/hyperv/private_key

Esto te permitirá conectarte manualmente desde cualquier cliente SSH que prefieras.

Aprovisionamiento con scripts

Uno de los mayores beneficios de Vagrant es su soporte para aprovisionamiento automático, gracias a scripts. Puedes lanzar scripts de shell para instalaciones repetibles:

config.vm.provision "shell", path: "bootstrap.sh"

Dentro del archivo bootstrap.sh puedes incluir instrucciones como:

apk update
apk add git

Esto se ejecutará la primera vez que se cree la VM. Si deseas volver a aplicar el script posteriormente, puedes hacer:

vagrant reload --provision

Aprovisionamiento de VM con scripts

Trabajando con múltiples máquinas

Vagrant permite gestionar más de una máquina desde un solo archivo. Esto es útil para laboratorios o clústeres de servidores. Una configuración típica para un laboratorio puede incluir varias definiciones:

Vagrant.configure("2") do |config|
  config.vm.define "master" do |master|
    master.vm.box = "bento/ubuntu-20.04"
    master.vm.hostname = "master"
    master.vm.network :private_network, ip: "10.0.0.10"
  end

  (1..2).each do |i|
    config.vm.define "node#{i}" do |node|
      node.vm.box = "bento/ubuntu-20.04"
      node.vm.hostname = "node#{i}"
      node.vm.network :private_network, ip: "10.0.0.#{i + 10}"
    end
  end

  config.vm.provision "shell", inline: <<-SHELL
    apt-get update
    apt-get install -y avahi-daemon libnss-mdns
  SHELL
end

Esto permite que las máquinas se reconozcan mediante nombres como node1.local o master.local gracias al uso de mDNS.

Contenido exclusivo - Clic Aquí  Candy Crush Saga para descargar gratis

Consejos sobre rendimiento y compatibilidad

El rendimiento de Vagrant en Hyper-V es generalmente bueno, pero depende de:

  • La potencia de tu equipo anfitrión (RAM, CPU, tipo de disco).
  • La imagen base usada (mejor usar boxes optimizadas).
  • La cantidad de máquinas funcionando a la vez.
  • Uso de disco diferencial y aprovisionamiento ligero.

Una práctica habitual para scriptar múltiples entornos es crear una box personalizada que ya incluya todas tus categorías: herramientas, servicios, rutas, etc. Esto evita tener que volver a instalar lo mismo en cada instancia.

Usar Vagrant en Hyper-V en Windows es totalmente viable, aunque con algunas limitaciones que se pueden solventar con pequeños ajustes.Hyper-V aporta robustez y compatibilidad con tecnologías modernas de Microsoft, mientras que Vagrant facilita la automatización y portabilidad del entorno de desarrollo.

Deja un comentario