Kompletan vodič za instaliranje i korištenje Vagranta na Hyper-V u Windows 11

Posljednje ažuriranje: 08/04/2025

  • Vagrant podržava Hyper-V iz Windows 8.1 ili novijeg i omogućava ponovljiva okruženja
  • Instaliranje i konfiguriranje Vagranta na Hyper-V zahtijeva posebne postavke umrežavanja i obezbjeđenja.
  • Hyper-V ne dozvoljava lako određene funkcije poput statičkih IP adresa, ali postoje komplementarna rješenja
  • Preporučuje se korištenje 'box' slika kompatibilnih s Hyper-V kako biste izbjegli greške pri pokretanju.
Instalirajte Vagrant na Hyper-V-1

 

Ulaz, Postavite virtuelna okruženja brzo i uredno u Windows-u Čini se kao složena misija. Srećom, imamo alate poput Vagrant na Hyper-V da bi to bilo moguće. I iako je njegova upotreba više povezana s VirtualBoxom, ona je također potpuno kompatibilna s ovom tehnologijom virtuelizacije koja je već integrirana u mnoge verzije Windowsa.

Uprkos tome, instaliranje i konfigurisanje Vagrant u Hyper-V nije tako lako kao što se čini. Postoji ključni koraci i posebnosti Microsoft provajdera virtuelizacije koje biste trebali znati. U ovom članku ćemo vam pružiti sve što vam je potrebno za pokretanje virtuelnih okruženja prema ovoj formuli bez ikakvih problema.

Šta je Vagrant i zašto koristiti Hyper-V?

Vagrant To je a alat otvorenog koda to dozvoljava izgraditi reproduktivna i prenosiva virtuelna okruženja kroz jednostavne konfiguracijske datoteke. Dizajniran je za programere, sistemske administratore ili svakoga kome je potrebna konzistentna okruženja na svim računarima, uz podršku za više operativnih sistema.

Sa druge strane, Hyper-V je Microsoftov izvorni hipervizor, uključeno u Professional, Enterprise i Education verzije Windows 8.1 i novije verzije. Nudi visoke performanse i stabilnost, posebno korisno kada se drugi hipervizori poput VirtualBoxa sukobljavaju u modernim Windows okruženjima.

Jedan od najčešćih razloga za odabir Hyper-V umjesto VirtualBoxa su neki proizvodi, kao npr DockerDesktop ili WSL2 (Windows podsistem za Linux), zahtijevaju da Hyper-V bude omogućen. Ovo stvara nekompatibilnosti sa VirtualBoxom, čineći Hyper-V jedinim validnim rešenjem ako ne želimo da aktiviramo i deaktiviramo usluge.

Ekskluzivni sadržaj - kliknite ovdje  Kako da završim zadatke sa Wunderlistom?

Prednosti korištenja Vagranta s Hyper-V

Instaliranje Vagranta i omogućavanje Hyper-V

Prije nego počnete koristiti Vagrant na Hyper-V, Provjerite je li na vašem računaru omogućen Hyper-V. Budite oprezni, jer obično nije uključeno po defaultu. Ovo možete učiniti ručno iz odjeljka „Uključi funkcije Windowsa“ ili pomoću sljedeće naredbe u PowerShell-u (kao administrator):

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

Nakon izvršenja ove naredbe, potrebno je ponovno pokretanje računara da bi promene stupile na snagu.

Paralelno, morate Preuzmite i instalirajte Vagrant sa službene web stranice. Instalater uključuje sve što vam je potrebno da biste mogli koristiti naredbu vagrant direktno sa bilo kog terminala.

Nakon instalacije, možete provjeriti da li je sve ispravno pokretanjem sljedećeg u terminalu:

vagrant --version

Ova naredba bi trebala vratiti instaliranu verziju, na primjer Vagrant 2.4.0.

Korak 1: Pripremite osnovno okruženje

Vagrant je baziran na „kutijama“, koje su osnovne slike unapred instaliranih operativnih sistema. Oni se automatski preuzimaju iz javnog indeksa poznatog kao Vagrant Cloud. Da biste započeli, potrebno je da kreirate fasciklu u kojoj ćete raditi na svom projektu. na primjer:

mkdir mi_proyecto_vagrant
cd mi_proyecto_vagrant
vagrant init generic/alpine36

Ova naredba će generirati datoteku pod nazivom Vagrantfile gde se nalazi sva konfiguracija virtuelne mašine. Unutar njega ćete morati podesiti neke ključne parametre da biste koristili Hyper-V.

Vagrant na Hyper-V

Konfiguracija Hyper-V provajdera

Prema zadanim postavkama, Vagrant će pokušati koristiti VirtualBox kao provajdera. Da biste koristili Hyper-V, možete to specificirati svaki put tako što ćete pokrenuti:

vagrant up --provider=hyperv

Ili postavite Hyper-V kao zadanog dobavljača postavljanjem varijable okruženja:

$env:VAGRANT_DEFAULT_PROVIDER="hyperv"

Ovaj korak se može uraditi iz PowerShell-a ili direktno u varijablama vašeg sistemskog okruženja.

Ekskluzivni sadržaj - kliknite ovdje  Kako napraviti aplikaciju za Android

Unutar Vagrantfile-a, Preporučuje se da navedete provajdera sa određenim postavkama. Osnovni primjer bi bio:

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

Ovi parametri vam omogućavaju da dodijelite RAM, broj jezgara i ime koje će mašina imati u Hyper-V.

Umrežavanje i povezivanje u Hyper-V

Jedna od slabih tačaka Hyper-V u Vagrantu je to što ne konfiguriše mrežu automatski. Iz tog razloga, morat ćete ručno odabrati vSwitch s vanjskom vezom koja je već kreirana u Hyper-V.

Da biste povezali privatnu mrežu ili odabrali određeni vSwitch, možete koristiti:

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

Imajte to na umu Hyper-V vam ne dozvoljava da direktno konfigurišete statičke IP adrese iz Vagranta., tako da se moraju postaviti pomoću skripti ili izmjenom postavki gostujućeg operativnog sistema.

 

hiper-v

Pristup mašini: SSH i drugi alati

Iako se može činiti da se SSH ne može koristiti na Windows-u, Vagrant uključuje ugrađeni SSH klijent, tako da mu možete pristupiti bez potrebe za instaliranjem dodatnih programa.

Prijavite se sa:

vagrant ssh

Možete koristiti i PuTTY, ali u tom slučaju će vam trebati Pretvorite privatni ključ koji je generirao Vagrant u PPK format (sa PuTTYgenom), jer nije direktno podržan. Ključ se nalazi na adresi:

.vagrant/machines/default/hyperv/private_key

Ovo će vam omogućiti da se ručno povežete sa bilo kog SSH klijenta koji želite.

Obezbeđivanje sa skriptama

Jedna od najvećih prednosti Vagranta je njegova podrška za automatsko obezbjeđivanje, zahvaljujući skriptama. Možete pokrenuti shell skripte za ponovljive instalacije:

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

Unutar datoteke bootstrap.sh Možete uključiti uputstva kao što su:

apk update
apk add git

Ovo će pokrenuti prvi put kada se VM kreira. Ako kasnije želite ponovo primijeniti skriptu, možete učiniti:

vagrant reload --provision

Omogućavanje VM-ova sa skriptama

Rad sa više mašina

Vagrant vam omogućava da upravljate više od jedne mašine iz jedne datoteke. Ovo je korisno za laboratorije ili klastere servera. Tipična postavka za laboratorij može uključivati ​​nekoliko definicija:

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

Ovo omogućava mašinama da se međusobno prepoznaju po imenima kao što su node1.local o master.local zahvaljujući upotrebi mDNS-a.

Ekskluzivni sadržaj - kliknite ovdje  Kako povratiti svoj glasnik

Savjeti za performanse i kompatibilnost

Lutajuće performanse na Hyper-V su generalno dobre, ali zavise od:

  • Moć vašeg domaćinskog tima (RAM, CPU, tip diska).
  • Korištena osnovna slika (bolje koristiti optimizirane kutije).
  • Broj mašina koje rade u isto vrijeme.
  • Diferencijalna upotreba diska i tanka provizija.

Uobičajena praksa za skriptiranje više okruženja je kreiranje a personalizovana kutija koji već uključuje sve vaše kategorije: alate, usluge, rute, itd. Time se izbjegava ponovno instaliranje iste stvari u svakoj instanci.

Korištenje Vagranta na Hyper-V na Windowsima je potpuno održivo, iako uz neka ograničenja koja se mogu riješiti malim prilagodbama. Hyper-V pruža robusnost i kompatibilnost sa modernim Microsoft tehnologijama, dok Vagrant olakšava automatizaciju i prenosivost razvojnog okruženja.