- Vagrant ondersteun Hyper-V vanaf Windows 8.1 of hoër en fasiliteer reproduceerbare omgewings
- Die installering en konfigurasie van Vagrant op Hyper-V vereis spesifieke netwerk- en voorsieninginstellings.
- Hyper-V laat sekere kenmerke soos statiese IP's nie maklik toe nie, maar daar is aanvullende oplossings
- Dit word aanbeveel om Hyper-V-versoenbare 'boks'-beelde te gebruik om selflaaifoute te vermy.

Om mee te begin, Stel virtuele omgewings vinnig en ordelik in Windows op Dit lyk na 'n komplekse missie. Gelukkig het ons gereedskap soos Vagrant op Hyper-V om dit moontlik te maak. En alhoewel die gebruik daarvan meer met VirtualBox geassosieer word, is dit ook ten volle versoenbaar met hierdie virtualiseringstegnologie wat reeds in baie weergawes van Windows geïntegreer is.
Ten spyte daarvan, installeer en konfigureer Vagrant in Hyper-V is dit nie so maklik soos dit lyk nie. Daar is sleutelstappe en eienaardighede van die Microsoft-virtualiseringsverskaffer wat u moet ken. In hierdie artikel sal ons jou alles verskaf wat jy nodig het om virtuele omgewings te begin volgens hierdie formule sonder enige probleme.
Wat is Vagrant en hoekom gebruik Hyper-V?
Vagrant Dit is 'n herramienta de código abierto wat toelaat bou reproduceerbare en draagbare virtuele omgewings deur eenvoudige konfigurasielêers. Dit is ontwerp vir ontwikkelaars, stelseladministrateurs of enigiemand wat konsekwente omgewings oor rekenaars benodig, met ondersteuning vir verskeie bedryfstelsels.
Van hulle kant, Hyper-V is Microsoft se inheemse hypervisor, ingesluit in Professional-, Enterprise- en Education-weergawes van Windows 8.1 en later. Dit bied hoë werkverrigting en stabiliteit, veral nuttig wanneer ander hiperviseerders soos VirtualBox konflik in moderne Windows-omgewings.
Een van die mees algemene redes om te kies vir Hiper-V in plaas van VirtualBox is dat sommige produkte, soos Docker Desktop of WSL2 (Windows-substelsel vir Linux), vereis dat Hyper-V geaktiveer word. Dit skep onverenigbaarheid met VirtualBox, wat Hyper-V die enigste geldige oplossing maak as ons nie dienste wil aktiveer en deaktiveer nie.
Installeer Vagrant en aktiveer Hyper-V
Voordat jy Vagrant op Hyper-V begin gebruik, Maak seker dat jou rekenaar Hyper-V geaktiveer het. Wees versigtig, want dit is gewoonlik nie by verstek geaktiveer nie. U kan dit handmatig doen vanaf die "Skakel Windows-kenmerke aan"-afdeling of met die volgende opdrag in PowerShell (as administrateur):
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All
Nadat u hierdie opdrag uitgevoer het, 'n rekenaar herbegin word vereis sodat die veranderinge in werking kan tree.
In parallel moet jy Laai Vagrant af en installeer dit vanaf die amptelike webwerf. Die installeerder bevat alles wat jy nodig het om die opdrag te kan gebruik vagrant direk vanaf enige terminale.
Sodra dit geïnstalleer is, kan jy verifieer dat alles korrek is deur die volgende in die terminaal uit te voer:
vagrant --version
Hierdie opdrag moet byvoorbeeld die geïnstalleerde weergawe terugstuur Vagrant 2.4.0.
Stap 1: Berei 'n basiese omgewing voor
Vagrant is gebaseer op "bokse", wat basisbeelde is van vooraf geïnstalleerde bedryfstelsels. Dit word outomaties afgelaai vanaf die publieke indeks bekend as Vagrant Cloud. Om te begin, moet jy 'n gids skep waar jy aan jou projek sal werk. Byvoorbeeld:
mkdir mi_proyecto_vagrant
cd mi_proyecto_vagrant
vagrant init generic/alpine36
Hierdie bevel sal 'n lêer genaamd Vagrantfile genereer dit is waar al die konfigurasie van die virtuele masjien is. Daarbinne sal jy 'n paar sleutelparameters moet aanpas om Hyper-V te gebruik.
Hyper-V-verskafferkonfigurasie
Standaard, Vagrant sal probeer om VirtualBox as 'n verskaffer te gebruik. Om Hyper-V te gebruik, kan jy dit elke keer spesifiseer deur te hardloop:
vagrant up --provider=hyperv
Of stel Hyper-V as die verstekverskaffer deur 'n omgewingsveranderlike in te stel:
$env:VAGRANT_DEFAULT_PROVIDER="hyperv"
Hierdie stap kan gedoen word vanaf PowerShell of direk in jou stelsel omgewing veranderlikes.
Binne die Vagrantfile, Dit word aanbeveel om die verskaffer met spesifieke instellings te spesifiseer. 'n Basiese voorbeeld sou wees:
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
Hierdie parameters laat jou toe om toe te ken RAM, aantal kerns en die naam wat die masjien in Hyper-V sal hê.
Netwerk en konnektiwiteit in Hyper-V
Een van die swak punte van Hyper-V in Vagrant is dat dit nie outomaties die netwerk konfigureer nie. Om hierdie rede sal jy met die hand 'n vSwitch moet kies met eksterne konneksie wat reeds in Hyper-V geskep is.
Om 'n private netwerk te assosieer of 'n spesifieke vSwitch te kies, kan jy gebruik:
config.vm.network "private_network", bridge: "NombreDelvSwitch"
Hou in gedagte dat Hyper-V laat jou nie toe om statiese IP’s direk vanaf Vagrant op te stel nie., dus moet hulle gestel word met skrifte of deur die gasbedryfstelselinstellings te wysig.
Masjientoegang: SSH en ander gereedskap
Alhoewel dit mag lyk asof SSH nie op Windows gebruik kan word nie, Vagrant sluit 'n ingeboude SSH-kliënt in, sodat jy toegang daartoe kan kry sonder om bykomende programme te installeer.
Teken in met:
vagrant ssh
Jy kan ook PuTTY gebruik, maar in daardie geval sal jy nodig hê Skakel die private sleutel wat deur Vagrant gegenereer word om na PPK-formaat (met PuTTYgen), aangesien dit nie direk ondersteun word nie. Die sleutel is geleë by:
.vagrant/machines/default/hyperv/private_key
Dit sal jou toelaat om handmatig te koppel vanaf enige SSH-kliënt wat jy verkies.
Voorsiening met skrifte
Een van die grootste voordele van Vagrant is sy ondersteuning vir outomatiese voorsiening, danksy skrifte. U kan dopskrifte vir herhaalbare installasies begin:
config.vm.provision "shell", path: "bootstrap.sh"
Dentro del archivo bootstrap.sh Jy kan instruksies insluit soos:
apk update
apk add git
Dit sal loop die eerste keer dat die VM geskep word. As jy die skrif later weer wil toepas, kan jy doen:
vagrant reload --provision
Werk met verskeie masjiene
Vagrant laat jou toe om meer as een masjien vanaf 'n enkele lêer te bestuur. Dit is nuttig vir laboratoriums of bedienerklusters. 'n Tipiese opstelling vir 'n laboratorium kan verskeie definisies insluit:
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
Dit laat masjiene toe om mekaar te herken deur name soos node1.plaaslik o meester.plaaslik danksy die gebruik van mDNS.
Wenke vir prestasie en versoenbaarheid
Swerfprestasie op Hyper-V is oor die algemeen goed, maar dit hang af van:
- Die krag van jou gasheerspan (RAM, SVE, tipe skyf).
- Die basisbeeld wat gebruik is (beter om geoptimaliseerde bokse te gebruik).
- Die aantal masjiene wat op dieselfde tyd loop.
- Differensiële skyfgebruik en dun voorsiening.
'n Algemene praktyk vir die skryf van verskeie omgewings is om 'n persoonlike boks wat reeds al jou kategorieë insluit: gereedskap, dienste, roetes, ens. Dit voorkom dat jy dieselfde ding in elke geval moet herinstalleer.
Die gebruik van Vagrant op Hyper-V op Windows is heeltemal lewensvatbaar, hoewel met 'n paar beperkings wat met klein aanpassings opgelos kan word. Hyper-V bied robuustheid en verenigbaarheid met moderne Microsoft-tegnologieë, terwyl Vagrant die outomatisering en oordraagbaarheid van die ontwikkelingsomgewing vergemaklik.
Redakteur spesialiseer in tegnologie en internetkwessies met meer as tien jaar ondervinding in verskillende digitale media. Ek het gewerk as 'n redakteur en inhoudskepper vir e-handel, kommunikasie, aanlyn bemarking en advertensiemaatskappye. Ek het ook op ekonomie, finansies en ander sektore se webwerwe geskryf. My werk is ook my passie. Nou, deur my artikels in Tecnobits, Ek probeer om al die nuus en nuwe geleenthede te verken wat die wêreld van tegnologie ons elke dag bied om ons lewens te verbeter.



