- 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, включени във версиите Professional, Enterprise и Education на Windows 8.1 и по-нови. Той предлага висока производителност и стабилност, особено полезен, когато други хипервайзори като VirtualBox са в конфликт в модерни Windows среди.
Една от най-честите причини за избор на Hyper-V вместо VirtualBox е, че някои продукти, като напр DockerDesktop или 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
Тези параметри ви позволяват да зададете RAM, брой ядра и името, което машината ще има в 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 е неговата поддръжка за автоматично осигуряване, благодарение на скриптове. Можете да стартирате shell скриптове за повтарящи се инсталации:
config.vm.provision "shell", path: "bootstrap.sh"
Вътре във файла bootstrap.sh Можете да включите инструкции като:
apk update
apk add git
Това ще се изпълнява при първото създаване на VM. Ако искате да приложите отново скрипта по-късно, можете да направите:
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 като цяло е добра, но зависи от:
- Силата на вашия екип домакин (RAM, процесор, тип диск).
- Използваното основно изображение (по-добре да използвате оптимизирани кутии).
- Броят на машините, работещи едновременно.
- Диференциално използване на диска и тънко осигуряване.
Обичайна практика за скриптиране на множество среди е да се създаде a персонализирана кутия който вече включва всички ваши категории: инструменти, услуги, маршрути и т.н. Това избягва необходимостта да инсталирате отново едно и също нещо във всеки екземпляр.
Използването на Vagrant на Hyper-V в Windows е напълно жизнеспособно, макар и с някои ограничения, които могат да бъдат решени с малки корекции. Hyper-V осигурява устойчивост и съвместимост със съвременните технологии на Microsoft, докато Vagrant улеснява автоматизацията и преносимостта на средата за разработка.
Редактор, специализиран в областта на технологиите и интернет, с повече от десет години опит в различни цифрови медии. Работил съм като редактор и създател на съдържание за компании за електронна търговия, комуникации, онлайн маркетинг и реклама. Писал съм и на уебсайтове за икономика, финанси и други сектори. Работата ми е и моя страст. Сега, чрез моите статии в Tecnobits, опитвам се да изследвам всички новини и нови възможности, които светът на технологиите ни предлага всеки ден, за да подобрим живота си.



