- 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.

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.
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.
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.
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.
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
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.
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.
Urednik specijaliziran za tehnologiju i internet pitanja s više od deset godina iskustva u različitim digitalnim medijima. Radio sam kao urednik i kreator sadržaja za kompanije za e-trgovinu, komunikaciju, online marketing i oglašavanje. Također sam pisao na web stranicama ekonomije, finansija i drugih sektora. Moj posao je i moja strast. Sada, kroz moje članke u Tecnobits, pokušavam istražiti sve novosti i nove mogućnosti koje nam svijet tehnologije nudi svaki dan da poboljšamo svoje živote.



