Komplett guide för att installera och använda Vagrant på Hyper-V i Windows 11

Senaste uppdateringen: 08/04/2025
Författare: Daniel Terrasa

  • Vagrant stöder Hyper-V från Windows 8.1 eller högre och underlättar reproducerbara miljöer
  • Att installera och konfigurera Vagrant på Hyper-V kräver specifika nätverks- och provisioneringsinställningar.
  • Hyper-V tillåter inte vissa funktioner som statiska IP-adresser lätt, men det finns kompletterande lösningar
  • Det rekommenderas att använda Hyper-V-kompatibla 'box'-bilder för att undvika startfel.
Installera Vagrant på Hyper-V-1

 

inmatning, Ställ in virtuella miljöer snabbt och överskådligt i Windows Det verkar vara ett komplext uppdrag. Som tur är har vi verktyg som Vagrant på Hyper-V för att göra det möjligt. Och även om dess användning är mer förknippad med VirtualBox, är den också helt kompatibel med denna virtualiseringsteknik som redan är integrerad i många versioner av Windows.

Trots det, installera och konfigurera Luffare i Hyper-V är det inte så lätt som det verkar. Det finns viktiga steg och egenheter med Microsofts virtualiseringsleverantör som du bör känna till. I den här artikeln ger vi dig allt du behöver för att starta virtuella miljöer enligt denna formel utan problem.

Vad är Vagrant och varför använda Hyper-V?

Luffare är en verktyg för öppen källkod bygga reproducerbara och bärbara virtuella miljöer genom enkla konfigurationsfiler. Den är designad för utvecklare, systemadministratörer eller alla som behöver konsekventa miljöer över datorer, med stöd för flera operativsystem.

För sin del, Hyper-V är Microsofts inbyggda hypervisor, som ingår i Professional-, Enterprise- och Education-versionerna av Windows 8.1 och senare. Det erbjuder hög prestanda och stabilitet, särskilt användbart när andra hypervisorer som VirtualBox konflikter i moderna Windows-miljöer.

En av de vanligaste anledningarna till att välja Hyper-V istället för VirtualBox är att vissa produkter, som t.ex DockerDesktop eller WSL2 (Windows Subsystem for Linux), kräver att Hyper-V är aktiverat. Detta skapar inkompatibiliteter med VirtualBox, vilket gör Hyper-V till den enda giltiga lösningen om vi inte vill aktivera och avaktivera tjänster.

Exklusivt innehåll - Klicka här  Så här löser du in en Google Play-kod

Fördelar med att använda Vagrant med Hyper-V

Installera Vagrant och aktivera Hyper-V

Innan du börjar använda Vagrant på Hyper-V, Se till att din dator har Hyper-V aktiverat. Var försiktig, eftersom det vanligtvis inte är aktiverat som standard. Du kan göra detta manuellt från avsnittet "Slå på Windows-funktioner" eller med följande kommando i PowerShell (som administratör):

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

Efter att ha utfört detta kommando, en omstart av datorn krävs för att ändringarna ska träda i kraft.

Parallellt måste du Ladda ner och installera Vagrant från den officiella webbplatsen. Installationsprogrammet innehåller allt du behöver för att kunna använda kommandot vagrant direkt från valfri terminal.

När det är installerat kan du verifiera att allt är korrekt genom att köra följande i terminalen:

vagrant --version

Detta kommando bör till exempel returnera den installerade versionen Vagrant 2.4.0.

Steg 1: Förbered en basmiljö

Vagrant är baserat på "boxar", som är basbilder av förinstallerade operativsystem. Dessa laddas automatiskt ner från det offentliga indexet som kallas Vagrant Cloud. För att komma igång måste du skapa en mapp där du ska arbeta med ditt projekt. Till exempel:

mkdir mi_proyecto_vagrant
cd mi_proyecto_vagrant
vagrant init generic/alpine36

Detta kommando kommer att generera en fil som heter Vagrantfile det är där all virtuell maskinkonfiguration finns. Inom den måste du justera några nyckelparametrar för att använda Hyper-V.

Vagrant på Hyper-V

Hyper-V-leverantörskonfiguration

Som standard, Vagrant kommer att försöka använda VirtualBox som leverantör. För att använda Hyper-V kan du ange detta varje gång genom att köra:

vagrant up --provider=hyperv

Eller ställ in Hyper-V som standardleverantör genom att ställa in en miljövariabel:

$env:VAGRANT_DEFAULT_PROVIDER="hyperv"

Detta steg kan göras från PowerShell eller direkt i dina systemmiljövariabler.

Exklusivt innehåll - Klicka här  Hur installerar du uppdateringar till fjärrprogrammet Microsoft Office?

Inuti Vagrantfilen, Det rekommenderas att ange leverantören med specifika inställningar. Ett grundläggande exempel skulle vara:

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

Dessa parametrar låter dig tilldela RAM, antal kärnor och namnet som maskinen kommer att ha i Hyper-V.

Nätverk och anslutning i Hyper-V

En av de svaga punkterna med Hyper-V i Vagrant är att den inte automatiskt konfigurerar nätverket. Av denna anledning måste du manuellt välja en vSwitch med extern anslutning redan skapad i Hyper-V.

För att associera ett privat nätverk eller välja en specifik vSwitch kan du använda:

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

Tänk på det Hyper-V tillåter dig inte att direkt konfigurera statiska IP-adresser från Vagrant., så de måste ställas in med skript eller genom att ändra inställningarna för gästoperativsystemet.

 

hyper-v

Maskinåtkomst: SSH och andra verktyg

Även om det kan tyckas att SSH inte kan användas på Windows, Vagrant inkluderar en inbyggd SSH-klient, så att du kan komma åt den utan att behöva installera ytterligare program.

Logga in med:

vagrant ssh

Du kan också använda PuTTY, men i så fall behöver du Konvertera den privata nyckeln som genereras av Vagrant till PPK-format (med PuTTYgen), eftersom det inte stöds direkt. Nyckeln finns på:

.vagrant/machines/default/hyperv/private_key

Detta gör att du kan ansluta manuellt från vilken SSH-klient du föredrar.

Provisionering med skript

En av de största fördelarna med Vagrant är dess stöd för automatisk provisionering, tack vare skript. Du kan starta skalskript för repeterbara installationer:

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

Inne i filen bootstrap.sh Du kan inkludera instruktioner som:

apk update
apk add git

Detta kommer att köras första gången den virtuella datorn skapas. Om du vill använda skriptet igen senare kan du göra:

vagrant reload --provision

Provisionera virtuella datorer med skript

Arbetar med flera maskiner

Vagrant låter dig hantera mer än en maskin från en enda fil. Detta är användbart för labb eller serverkluster. En typisk inställning för ett labb kan innehålla flera definitioner:

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

Detta gör att maskiner kan känna igen varandra med namn som t.ex nod1.local o master.local tack vare användningen av mDNS.

Exklusivt innehåll - Klicka här  Hur man spelar Ruzzle på andra språk

Tips för prestanda och kompatibilitet

Vagrant-prestanda på Hyper-V är i allmänhet bra, men det beror på:

  • Kraften i ditt värdlag (RAM, CPU, disktyp).
  • Basbilden som används (bättre att använda optimerade lådor).
  • Antalet maskiner som körs samtidigt.
  • Differentiell diskanvändning och tunn provisionering.

En vanlig praxis för att skripta flera miljöer är att skapa en personlig låda som redan inkluderar alla dina kategorier: verktyg, tjänster, rutter, etc. Detta undviker att behöva installera om samma sak i varje instans.

Att använda Vagrant på Hyper-V på Windows är helt lönsamt, dock med vissa begränsningar som kan lösas med små justeringar. Hyper-V ger robusthet och kompatibilitet med modern Microsoft-teknik, medan Vagrant underlättar automatisering och portabilitet av utvecklingsmiljön.