- Vagrant admite Hyper-V desde Windows 8.1 ou superior e facilita ambientes reproducibles
- A instalación e configuración de Vagrant en Hyper-V require unha configuración específica de rede e aprovisionamento.
- Hyper-V non permite certas funcións como as IP estáticas facilmente, pero hai solucións complementarias
- Recoméndase utilizar imaxes de "caixa" compatibles con Hyper-V para evitar erros de arranque.

Para comezar, Configura ambientes virtuais de forma rápida e ordenada en Windows Parece unha misión complexa. Por sorte, temos ferramentas como Vagabundo en Hyper-V para facelo posible. E aínda que o seu uso está máis asociado a VirtualBox, tamén é totalmente compatible con esta tecnoloxía de virtualización que xa está integrada en moitas versións de Windows.
A pesar diso, instalar e configurar Vagabundo en Hyper-V non é tan sinxelo como parece. Hai pasos clave e peculiaridades do provedor de virtualización de Microsoft que debes coñecer. Neste artigo, proporcionámosche todo o que necesitas para lanzar contornas virtuais seguindo esta fórmula sen ningún problema.
Que é Vagrant e por que usar Hyper-V?
Vagabundo É un ferramenta de código aberto que permite construír entornos virtuais reproducibles e portátiles mediante ficheiros de configuración sinxelos. Está deseñado para desenvolvedores, administradores de sistemas ou calquera persoa que necesite ambientes consistentes en todos os ordenadores, con soporte para varios sistemas operativos.
Pola súa banda, Hyper-V é o hipervisor nativo de Microsoft, incluído nas versións Professional, Enterprise e Education de Windows 8.1 e posteriores. Ofrece un alto rendemento e estabilidade, especialmente útil cando outros hipervisores como VirtualBox entran en conflito en ambientes Windows modernos.
Un dos motivos máis comúns para optar Hiper-V en lugar de VirtualBox é que algúns produtos, como Escritorio Docker ou WSL2 (subsistema de Windows para Linux), require que Hyper-V estea activado. Isto xera incompatibilidades con VirtualBox, facendo de Hyper-V a única solución válida se non queremos estar activando e desactivando servizos.
Instalando Vagrant e activando Hyper-V
Antes de comezar a usar Vagrant en Hyper-V, Asegúrate de que o teu ordenador teña Hyper-V activado. Teña coidado, porque normalmente non está activado por defecto. Podes facelo manualmente desde a sección "Activar funcións de Windows" ou co seguinte comando en PowerShell (como administrador):
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All
Despois de executar este comando, é necesario reiniciar o ordenador para que os cambios teñan efecto.
Paralelamente, debes Descarga e instala Vagrant desde o sitio web oficial. O instalador inclúe todo o que precisa para poder usar o comando vagrant directamente desde calquera terminal.
Unha vez instalado, pode comprobar que todo está correcto executando o seguinte no terminal:
vagrant --version
Este comando debería devolver a versión instalada, por exemplo Vagrant 2.4.0.
Paso 1: prepare un ambiente base
Vagrant baséase en "caixas", que son imaxes básicas de sistemas operativos preinstalados. Estes descárganse automaticamente do índice público coñecido como Vagrant Cloud. Para comezar, debes crear un cartafol onde traballarás no teu proxecto. Por exemplo:
mkdir mi_proyecto_vagrant
cd mi_proyecto_vagrant
vagrant init generic/alpine36
Este comando xerará un ficheiro chamado Vagrantfile que é onde reside toda a configuración da máquina virtual. Dentro del terás que axustar algúns parámetros clave para usar Hyper-V.
Configuración do provedor Hyper-V
Por defecto, Vagrant tentará usar VirtualBox como provedor. Para usar Hyper-V, podes especificalo cada vez executando:
vagrant up --provider=hyperv
Ou, configure Hyper-V como o provedor predeterminado configurando unha variable de ambiente:
$env:VAGRANT_DEFAULT_PROVIDER="hyperv"
Este paso pódese facer desde PowerShell ou directamente nas variables de ambiente do seu sistema.
Dentro do Vagrantfile, Recoméndase especificar o provedor cunha configuración específica. Un exemplo 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
Estes parámetros permítenche asignar RAM, número de núcleos e o nome que terá a máquina en Hyper-V.
Redes e conectividade en Hyper-V
Un dos puntos débiles de Hyper-V en Vagrant é que non configura automaticamente a rede. Por este motivo, terás que seleccionar manualmente un vSwitch con conectividade externa xa creada en Hyper-V.
Para asociar unha rede privada ou seleccionar un vSwitch específico, pode usar:
config.vm.network "private_network", bridge: "NombreDelvSwitch"
Ten en conta que Hyper-V non che permite configurar directamente IPs estáticas de Vagrant., polo que deben configurarse mediante scripts ou modificando a configuración do sistema operativo convidado.
Acceso á máquina: SSH e outras ferramentas
Aínda que poida parecer que SSH non se pode usar en Windows, Vagrant inclúe un cliente SSH integrado, para que poida acceder a el sen ter que instalar programas adicionais.
Iniciar sesión con:
vagrant ssh
Tamén podes usar PuTTY, pero nese caso necesitarás Converte a clave privada xerada por Vagrant en formato PPK (con PuTTYgen), xa que non é compatible directamente. A chave está situada en:
.vagrant/machines/default/hyperv/private_key
Isto permitirache conectarte manualmente desde calquera cliente SSH que prefires.
Aprovisionamento con scripts
Un dos maiores beneficios de Vagrant é o seu apoio aprovisionamento automático, grazas a scripts. Podes lanzar scripts de shell para instalacións repetibles:
config.vm.provision "shell", path: "bootstrap.sh"
Dentro do ficheiro bootstrap.sh Podes incluír instrucións como:
apk update
apk add git
Isto executarase a primeira vez que se crea a máquina virtual. Se queres volver aplicar o script máis tarde, podes facer:
vagrant reload --provision
Traballar con varias máquinas
Vagrant permítelle xestionar máis dunha máquina desde un único ficheiro. Isto é útil para laboratorios ou clusters de servidores. Unha configuración típica para un laboratorio pode incluír varias definicións:
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
Isto permite que as máquinas se recoñezan por nomes como nodo1.local o mestre.local grazas ao uso de mDNS.
Consellos de rendemento e compatibilidade
O rendemento vagabundo en Hyper-V é xeralmente bo, pero depende de:
- O poder do teu equipo anfitrión (RAM, CPU, tipo de disco).
- A imaxe base utilizada (mellor usar caixas optimizadas).
- O número de máquinas funcionando ao mesmo tempo.
- Uso diferencial do disco e thin provisioning.
Unha práctica común para crear scripts en varios ambientes é crear un caixa personalizada que xa inclúe todas as túas categorías: ferramentas, servizos, rutas, etc. Isto evita ter que reinstalar o mesmo en cada instancia.
Usar Vagrant en Hyper-V en Windows é totalmente viable, aínda que con algunhas limitacións que se poden solucionar con pequenos axustes. Hyper-V proporciona robustez e compatibilidade coas tecnoloxías modernas de Microsoft, mentres que Vagrant facilita a automatización e a portabilidade do contorno de desenvolvemento.
Editor especializado en temas de tecnoloxía e internet con máis de dez anos de experiencia en diferentes medios dixitais. Traballei como editor e creador de contidos para empresas de comercio electrónico, comunicación, marketing online e publicidade. Tamén escribín en sitios web de economía, finanzas e outros sectores. O meu traballo tamén é a miña paixón. Agora, a través dos meus artigos en Tecnobits, intento explorar todas as novidades e novas oportunidades que cada día nos ofrece o mundo da tecnoloxía para mellorar as nosas vidas.



