- Vagrant поддерживает Hyper-V из Windows 8.1 и выше и обеспечивает воспроизводимые среды.
- Установка и настройка Vagrant на Hyper-V требует определенных настроек сети и подготовки.
- Hyper-V не позволяет легко использовать некоторые функции, такие как статические IP-адреса, но существуют дополнительные решения.
- Во избежание ошибок загрузки рекомендуется использовать образы «box», совместимые с 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 некоторые продукты, такие как Докер Рабочий стол или 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
Эта команда должна вернуть установленную версию, например Бродяга 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
Это позволяет машинам узнавать друг друга по таким именам, как узел1.локальный o мастер.локальный благодаря использованию mDNS.
Советы по производительности и совместимости
Производительность Vagrant на Hyper-V в целом хорошая, но зависит от:
- Сила вашей принимающей команды (ОЗУ, ЦП, тип диска).
- Базовое изображение, используемое (лучше использовать оптимизированные коробки).
- Количество одновременно работающих машин.
- Дифференцированное использование диска и тонкое выделение ресурсов.
Распространенной практикой для написания сценариев для нескольких сред является создание персонализированная коробка который уже включает все ваши категории: инструменты, службы, маршруты и т. д. Это позволяет избежать необходимости переустанавливать одно и то же в каждом случае.
Использование Vagrant на Hyper-V в Windows вполне возможно, хотя и с некоторыми ограничениями, которые можно устранить с помощью небольших корректировок. Hyper-V обеспечивает надежность и совместимость с современными технологиями Microsoft, а Vagrant облегчает автоматизацию и переносимость среды разработки.
Редактор, специализирующийся на вопросах технологий и Интернета, с более чем десятилетним опытом работы в различных цифровых медиа. Я работал редактором и создателем контента в компаниях, занимающихся электронной коммерцией, коммуникациями, онлайн-маркетингом и рекламой. Я также писал на сайтах по экономике, финансам и другим секторам. Моя работа – это также моя страсть. Теперь, благодаря моим статьям в Tecnobits, я стараюсь каждый день изучать все новости и новые возможности, которые предлагает нам мир технологий, чтобы улучшить нашу жизнь.



