- Vagrant падтрымлівае Hyper-V ад Windows 8.1 або вышэй і спрыяе ўзнаўленню асяроддзя
- Устаноўка і налада Vagrant на Hyper-V патрабуе пэўных налад сеткі і забеспячэння.
- Hyper-V не дазваляе лёгка выкарыстоўваць некаторыя функцыі, такія як статычныя IP-адрасы, але ёсць дадатковыя рашэнні
- Каб пазбегнуць памылак загрузкі, рэкамендуецца выкарыстоўваць сумяшчальныя з Hyper-V вобразы скрынак.

Увод, Хутка і ўпарадкавана наладзьце віртуальныя асяроддзя ў Windows Здаецца, складаная місія. На шчасце, у нас ёсць такія інструменты Vagrant на Hyper-V каб зрабіць гэта магчымым. І хоць яго выкарыстанне больш звязана з VirtualBox, яно таксама цалкам сумяшчальна з гэтай тэхналогіяй віртуалізацыі, якая ўжо інтэгравана ў многія версіі Windows.
Нягледзячы на гэта, ўстаноўка і налада валацуга у Hyper-V гэта не так проста, як здаецца. Ёсць ключавыя крокі і асаблівасці пастаўшчыка віртуалізацыі Microsoft, якія вы павінны ведаць. У гэтым артыкуле мы дамо вам усё неабходнае для запуску віртуальных асяроддзяў па гэтай формуле без праблем.
Што такое Vagrant і навошта выкарыстоўваць Hyper-V?
валацуга з'яўляецца інструмент з адкрытым зыходным кодам дазваляючы ствараць узнаўляльныя і партатыўныя віртуальныя асяроддзя з дапамогай простых канфігурацыйных файлаў. Ён прызначаны для распрацоўшчыкаў, сістэмных адміністратараў або ўсіх, каму патрэбна ўзгодненае асяроддзе на кампутарах з падтрымкай некалькіх аперацыйных сістэм.
Са свайго боку, Hyper-V - гэта ўласны гіпервізар Microsoft, уключаны ў прафесійную, карпаратыўную і адукацыйную версіі Windows 8.1 і больш позніх версій. Ён забяспечвае высокую прадукцыйнасць і стабільнасць, што асабліва карысна, калі іншыя гіпервізары, такія як VirtualBox, канфліктуюць у сучасным асяроддзі Windows.
Адна з самых распаўсюджаных прычын выбару Hyper-V, замест VirtualBox з'яўляецца тое, што некаторыя прадукты, такія як Docker для працоўнага стала або WSL2 (падсістэма Windows для Linux), патрабуецца ўключэнне Hyper-V. Гэта стварае несумяшчальнасць з VirtualBox, што робіць Hyper-V адзіным правільным рашэннем, калі мы не хочам актываваць і дэактываваць службы.
Устаноўка Vagrant і ўключэнне Hyper-V
Перш чым пачаць выкарыстоўваць Vagrant на Hyper-V, Пераканайцеся, што на вашым кампутары ўключаны Hyper-V. Будзьце асцярожныя, бо звычайна ён не ўключаны па змаўчанні. Вы можаце зрабіць гэта ўручную ў раздзеле «Уключыць функцыі Windows» або з дапамогай наступнай каманды ў PowerShell (ад імя адміністратара):
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All
Пасля выканання гэтай каманды, патрабуецца перазагрузка кампутара каб змены ўступілі ў сілу.
Паралельна трэба Спампаваць і ўсталяваць Vagrant з афіцыйнага сайта. Праграма ўстаноўкі ўключае ў сябе ўсё неабходнае для выкарыстання каманды vagrant непасрэдна з любога тэрмінала.
Пасля ўстаноўкі вы можаце пераканацца, што ўсё правільна, выканаўшы наступнае ў тэрмінале:
vagrant --version
Гэтая каманда павінна вярнуць усталяваную версію, напрыклад Vagrant 2.4.0.
Крок 1: Падрыхтуйце базавую сераду
Vagrant заснаваны на «скрынях», якія з'яўляюцца базавымі вобразамі прадусталяваных аперацыйных сістэм. Яны аўтаматычна спампоўваюцца з публічнага індэкса, вядомага як Vagrant Cloud. Для пачатку вам трэба стварыць тэчку, у якой вы будзеце працаваць над сваім праектам. Напрыклад:
mkdir mi_proyecto_vagrant
cd mi_proyecto_vagrant
vagrant init generic/alpine36
Гэтая каманда створыць файл пад назвай Vagrantfile дзе знаходзіцца ўся канфігурацыя віртуальнай машыны. У ім вам трэба будзе наладзіць некаторыя ключавыя параметры для выкарыстання Hyper-V.
Канфігурацыя пастаўшчыка Hyper-V
Па змаўчанні, Vagrant паспрабуе выкарыстоўваць VirtualBox у якасці правайдэра. Каб выкарыстоўваць Hyper-V, вы можаце ўказваць гэта кожны раз, запускаючы:
vagrant up --provider=hyperv
Або ўсталюйце Hyper-V у якасці пастаўшчыка па змаўчанні, усталяваўшы зменную асяроддзя:
$env:VAGRANT_DEFAULT_PROVIDER="hyperv"
Гэты крок можна зрабіць з PowerShell або непасрэдна ў зменных сістэмнага асяроддзя.
Унутры Vagrantfile, Рэкамендуецца ўказваць правайдэра з пэўнымі наладамі. Базавым прыкладам можа быць:
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
Гэтыя параметры дазваляюць прызначаць Аператыўная памяць, колькасць ядраў і назва машыны ў Hyper-V.
Сетка і падключэнне ў Hyper-V
Адным са слабых месцаў Hyper-V у Vagrant з'яўляецца тое, што ён не наладжвае сетку аўтаматычна. Па гэтай прычыне вам трэба будзе ўручную выбраць vSwitch са знешнім падключэннем, ужо створаным у Hyper-V.
Каб звязаць прыватную сетку або выбраць пэўны vSwitch, вы можаце выкарыстоўваць:
config.vm.network "private_network", bridge: "NombreDelvSwitch"
Звярніце ўвагу на гэта Hyper-V не дазваляе наўпрост наладжваць статычныя IP-адрасы з Vagrant., таму яны павінны быць устаноўлены з дапамогай сцэнарыяў або шляхам змены параметраў гасцявой аперацыйнай сістэмы.
Машынны доступ: SSH і іншыя інструменты
Хоць можа здацца, што SSH нельга выкарыстоўваць у Windows, Vagrant ўключае ў сябе ўбудаваны кліент SSH, так што вы можаце атрымаць да яго доступ без неабходнасці ўсталёўваць дадатковыя праграмы.
Увайдзіце праз:
vagrant ssh
Вы таксама можаце выкарыстоўваць PuTTY, але ў гэтым выпадку вам спатрэбіцца Пераўтварыце закрыты ключ, згенераваны Vagrant, у фармат PPK (з PuTTYgen), паколькі ён не падтрымліваецца непасрэдна. Ключ знаходзіцца па адрасе:
.vagrant/machines/default/hyperv/private_key
Гэта дазволіць вам падключацца ўручную з любога кліента SSH, які вы аддаеце перавагу.
Забяспечванне скрыптамі
Адной з самых вялікіх пераваг Vagrant з'яўляецца яго падтрымка аўтаматычная падрыхтоўка, дзякуючы скрыптам. Вы можаце запускаць скрыпты абалонкі для паўторных установак:
config.vm.provision "shell", path: "bootstrap.sh"
Унутры файла bootstrap.sh Вы можаце ўключыць такія інструкцыі, як:
apk update
apk add git
Гэта будзе працаваць пры першым стварэнні віртуальнай машыны. Калі вы захочаце паўторна прымяніць скрыпт пазней, вы можаце зрабіць:
vagrant reload --provision
Праца з некалькімі машынамі
Vagrant дазваляе вам кіраваць больш чым адной машынай з аднаго файла. Гэта карысна для лабараторый або кластараў сервераў. Тыповая ўстаноўка для лабараторыі можа ўключаць некалькі азначэнняў:
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
Гэта дазваляе машынам распазнаваць адна адну па імёнах, напрыклад node1.local o гаспадар.мясцовы дзякуючы выкарыстанню mDNS.
Парады па прадукцыйнасці і сумяшчальнасці
Прадукцыйнасць Vagrant на Hyper-V у цэлым добрая, але яна залежыць ад:
- Моц каманды, якая прымае вас (Аператыўная памяць, працэсар, тып дыска).
- Выкарыстаны базавы відарыс (лепш выкарыстоўваць аптымізаваныя скрынкі).
- Колькасць машын, якія працуюць адначасова.
- Дыферэнцыяльнае выкарыстанне дыска і тонкае забеспячэнне.
Распаўсюджанай практыкай для сцэнарыяў некалькіх асяроддзяў з'яўляецца стварэнне персаналізаваная скрынка які ўжо ўключае ў сябе ўсе вашы катэгорыі: інструменты, паслугі, маршруты і г.д. Гэта дазваляе пазбегнуць неабходнасці пераўсталёўваць адно і тое ж у кожным асобніку.
Выкарыстанне Vagrant на Hyper-V у Windows цалкам жыццяздольнае, хоць і з некаторымі абмежаваннямі, якія можна вырашыць невялікімі карэкціроўкамі. Hyper-V забяспечвае надзейнасць і сумяшчальнасць з сучаснымі тэхналогіямі Microsoft, а Vagrant спрыяе аўтаматызацыі і партатыўнасці асяроддзя распрацоўкі.
Рэдактар, які спецыялізуецца на тэхналогіях і пытаннях Інтэрнэту з больш чым дзесяцігадовым вопытам работы ў розных лічбавых медыя. Я працаваў рэдактарам і стваральнікам кантэнту для кампаній па электроннай камерцыі, камунікацыі, інтэрнэт-маркетынгу і рэкламе. Я таксама пісаў на вэб-сайтах па эканоміцы, фінансах і іншых галінах. Мая праца таксама маё захапленне. Цяпер праз мае артыкулы ў Tecnobits, я стараюся даследаваць усе навіны і новыя магчымасці, якія кожны дзень прапануе нам свет тэхналогій, каб палепшыць наша жыццё.



