Itọsọna pipe si fifi sori ẹrọ ati lilo Vagrant lori Hyper-V ni Windows 11

Imudojuiwọn ti o kẹhin: 08/04/2025

  • Vagrant ṣe atilẹyin Hyper-V lati Windows 8.1 tabi ti o ga julọ ati ṣiṣe awọn agbegbe ti o le ṣe atunṣe
  • Fifi ati tunto Vagrant lori Hyper-V nilo netiwọki kan pato ati awọn eto ipese.
  • Hyper-V ko gba awọn ẹya kan laaye bi IPs aimi ni irọrun, ṣugbọn awọn solusan ibaramu wa
  • A ṣe iṣeduro lati lo awọn aworan 'apoti' ibaramu Hyper-V lati yago fun awọn aṣiṣe bata.
Fi Vagrant sori Hyiper-V-1

 

Input, Ṣeto awọn agbegbe foju ni kiakia ati ni aṣẹ ni Windows O dabi iṣẹ apinfunni eka kan. Ni Oriire, a ni awọn irinṣẹ bii Vagrant lori Hyper-V lati jẹ ki o ṣee ṣe. Ati pe botilẹjẹpe lilo rẹ jẹ diẹ sii ni nkan ṣe pẹlu VirtualBox, o tun jẹ ibaramu ni kikun pẹlu imọ-ẹrọ ipalọlọ ti o ti ṣepọ tẹlẹ sinu ọpọlọpọ awọn ẹya ti Windows.

Bi o ti jẹ pe, fifi sori ẹrọ ati tunto Ajinde ni Hyper-V kii ṣe rọrun bi o ṣe dabi. O wa bọtini awọn igbesẹ ati awọn iyasọtọ ti olupese iṣẹ agbara Microsoft ti o yẹ ki o mọ. Ninu nkan yii, a yoo fun ọ ni ohun gbogbo ti o nilo lati ṣe ifilọlẹ awọn agbegbe foju ni atẹle agbekalẹ yii laisi awọn iṣoro eyikeyi.

Kini Vagrant ati kilode ti o lo Hyper-V?

Ajinde O jẹ irinṣẹ orisun orisun ti o fun laaye kọ atunṣe ati awọn agbegbe foju gbigbe nipasẹ awọn faili iṣeto ti o rọrun. O jẹ apẹrẹ fun awọn olupilẹṣẹ, awọn alabojuto eto, tabi ẹnikẹni ti o nilo awọn agbegbe ibaramu kọja awọn kọnputa, pẹlu atilẹyin fun awọn ọna ṣiṣe lọpọlọpọ.

Ni ida keji, Hyper-V jẹ hypervisor abinibi ti Microsoft, to wa ninu Ọjọgbọn, Idawọlẹ, ati awọn ẹya Ẹkọ ti Windows 8.1 ati nigbamii. O funni ni iṣẹ giga ati iduroṣinṣin, paapaa iwulo nigbati awọn hypervisors miiran bii rogbodiyan VirtualBox ni awọn agbegbe Windows ode oni.

Ọkan ninu awọn idi ti o wọpọ julọ fun jijade Hyper-V dipo VirtualBox ni pe diẹ ninu awọn ọja, bii Ojú-iṣẹ Docker tabi WSL2 (Windows Subsystem fun Linux), nilo Hyper-V lati mu ṣiṣẹ. Eyi ṣẹda awọn aiṣedeede pẹlu VirtualBox, ṣiṣe Hyper-V ojutu ti o wulo nikan ti a ko ba fẹ lati mu ṣiṣẹ ati mu awọn iṣẹ ṣiṣẹ.

Iyasoto akoonu - Tẹ Nibi  Bii o ṣe le ra koodu Play Google kan pada

Awọn anfani ti lilo Vagrant pẹlu Hyper-V

Fifi Vagrant ati Ṣiṣẹ Hyper-V

Ṣaaju ki o to bẹrẹ lilo Vagrant lori Hyper-V, Rii daju pe kọmputa rẹ ti ṣiṣẹ Hyper-V. Ṣọra, nitori ko nigbagbogbo ṣiṣẹ nipasẹ aiyipada. O le ṣe eyi pẹlu ọwọ lati apakan “Tan awọn ẹya Windows” tabi pẹlu aṣẹ atẹle ni PowerShell (gẹgẹbi oluṣakoso):

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

Lẹhin ṣiṣe aṣẹ yii, Atunbere kọmputa kan nilo fun awọn ayipada lati mu ipa.

Ni afiwe, o gbọdọ Ṣe igbasilẹ ati fi Vagrant sori ẹrọ lati oju opo wẹẹbu osise. Insitola pẹlu ohun gbogbo ti o nilo lati ni anfani lati lo aṣẹ naa vagrant taara lati eyikeyi ebute.

Ni kete ti o ti fi sii, o le rii daju pe ohun gbogbo tọ nipa ṣiṣe atẹle ni ebute naa:

vagrant --version

Aṣẹ yii yẹ ki o da ẹya ti a fi sii pada, fun apẹẹrẹ 2.4.0 Vagrant.

Igbesẹ 1: Mura ayika ipilẹ kan

Vagrant da lori “awọn apoti”, eyiti o jẹ awọn aworan ipilẹ ti awọn ọna ṣiṣe ti a ti fi sii tẹlẹ. Iwọnyi jẹ igbasilẹ laifọwọyi lati atọka gbogbo eniyan ti a mọ si Vagrant Cloud. Lati bẹrẹ, o nilo lati ṣẹda folda kan nibiti iwọ yoo ṣiṣẹ lori iṣẹ akanṣe rẹ. Fun apere:

mkdir mi_proyecto_vagrant
cd mi_proyecto_vagrant
vagrant init generic/alpine36

Aṣẹ yii yoo ṣe ipilẹṣẹ faili ti a pe ni Vagrantfile eyi ti o jẹ ibi ti gbogbo awọn foju ẹrọ iṣeto ni gbe. Ninu rẹ iwọ yoo nilo lati ṣatunṣe diẹ ninu awọn paramita bọtini lati lo Hyper-V.

Vagrant lori Hyper-V

Iṣeto ni Olupese Hyper-V

Nipa aiyipada, Vagrant yoo gbiyanju lati lo VirtualBox bi olupese. Lati lo Hyper-V, o le pato eyi ni igba kọọkan nipa ṣiṣe:

vagrant up --provider=hyperv

Tabi, ṣeto Hyper-V bi olupese aiyipada nipa siseto oniyipada ayika:

$env:VAGRANT_DEFAULT_PROVIDER="hyperv"

Igbesẹ yii le ṣee ṣe lati PowerShell tabi taara ninu awọn oniyipada ayika eto rẹ.

Iyasoto akoonu - Tẹ Nibi  Bawo ni o ṣe fi awọn imudojuiwọn sori ohun elo Microsoft Office latọna jijin?

Ninu Vagrantfile, O ti wa ni niyanju lati pato awọn olupese pẹlu kan pato eto. Apeere ipilẹ yoo jẹ:

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

Awọn paramita wọnyi gba ọ laaye lati sọtọ Ramu, nọmba awọn ohun kohun, ati orukọ ẹrọ naa yoo ni ni Hyper-V.

Nẹtiwọki ati Asopọmọra ni Hyper-V

Ọkan ninu awọn aaye ailagbara ti Hyper-V ni Vagrant ni pe ko tunto nẹtiwọọki laifọwọyi. Fun idi eyi, iwọ yoo nilo lati yan vSwitch pẹlu ọwọ pẹlu isopọmọ ita ti a ṣẹda tẹlẹ ni Hyper-V.

Lati darapọ mọ nẹtiwọki aladani tabi yan vSwitch kan pato, o le lo:

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

Jọwọ ṣe akiyesi pe Hyper-V ko gba ọ laaye lati tunto awọn IP aimi taara lati Vagrant., nitorinaa wọn gbọdọ ṣeto ni lilo awọn iwe afọwọkọ tabi nipa yiyipada awọn eto iṣẹ ṣiṣe alejo.

 

ipè-v

Wiwọle ẹrọ: SSH ati awọn irinṣẹ miiran

Botilẹjẹpe o le dabi pe SSH ko le ṣee lo lori Windows, Vagrant pẹlu onibara SSH ti a ṣe sinu rẹ, nitorina o le wọle si laisi nini lati fi awọn eto afikun sii.

Wọle pẹlu:

vagrant ssh

O tun le lo Putty, ṣugbọn ninu ọran naa iwọ yoo nilo Yipada bọtini ikọkọ ti ipilẹṣẹ nipasẹ Vagrant si ọna kika PPK (pẹlu PuTTYgen), nitori ko ṣe atilẹyin taara. Bọtini naa wa ni:

.vagrant/machines/default/hyperv/private_key

Eyi yoo gba ọ laaye lati sopọ pẹlu ọwọ lati ọdọ alabara SSH eyikeyi ti o fẹ.

Ipese pẹlu awọn iwe afọwọkọ

Ọkan ninu awọn anfani nla julọ ti Vagrant ni atilẹyin rẹ fun ipese laifọwọyi, o ṣeun si awọn iwe afọwọkọ. O le ṣe ifilọlẹ awọn iwe afọwọkọ ikarahun fun awọn fifi sori ẹrọ atunwi:

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

Inu faili naa bootstrap.sh O le ni awọn itọnisọna gẹgẹbi:

apk update
apk add git

Eyi yoo ṣiṣẹ ni igba akọkọ ti VM ṣẹda. Ti o ba fẹ tun kan iwe afọwọkọ naa nigbamii, o le ṣe:

vagrant reload --provision

Ipese VMs pẹlu awọn iwe afọwọkọ

Ṣiṣẹ pẹlu awọn ẹrọ pupọ

Vagrant gba ọ laaye lati ṣakoso awọn ẹrọ diẹ sii ju ọkan lọ lati faili kan. Eyi wulo fun awọn laabu tabi awọn iṣupọ olupin. Iṣeto aṣoju fun laabu le ni ọpọlọpọ awọn itumọ:

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

Eyi n gba awọn ẹrọ laaye lati da ara wọn mọ nipasẹ awọn orukọ gẹgẹbi node1.agbegbe o oluwa.agbegbe o ṣeun si awọn lilo ti mDNS.

Iyasoto akoonu - Tẹ Nibi  Bi o ṣe le mu Ruzzle ni awọn ede miiran

Awọn imọran iṣẹ ṣiṣe ati ibamu

Iṣe alaanu lori Hyper-V dara ni gbogbogbo, ṣugbọn o da lori:

  • Agbara ti ẹgbẹ agbalejo rẹ (Àgbo, Sipiyu, disk iru).
  • Aworan ipilẹ ti a lo (dara julọ lati lo awọn apoti iṣapeye).
  • Nọmba awọn ẹrọ nṣiṣẹ ni akoko kanna.
  • Lilo disk iyatọ ati ipese tinrin.

Iwa ti o wọpọ fun kikọ awọn agbegbe pupọ ni lati ṣẹda a àdáni apoti ti o pẹlu gbogbo awọn ẹka rẹ tẹlẹ: awọn irinṣẹ, awọn iṣẹ, awọn ipa-ọna, ati bẹbẹ lọ. Eyi yago fun nini lati tun ohun kanna sori ẹrọ ni apẹẹrẹ kọọkan.

Lilo Vagrant lori Hyper-V lori Windows jẹ ṣiṣeeṣe patapata, biotilejepe pẹlu diẹ ninu awọn idiwọn ti o le ṣe atunṣe pẹlu awọn atunṣe kekere. Hyper-V n pese agbara ati ibaramu pẹlu awọn imọ-ẹrọ Microsoft ode oni, lakoko ti Vagrant ṣe adaṣe adaṣe ati gbigbe ti agbegbe idagbasoke.