- Vagrant, Windows 8.1 veya üzeri sürümlerden itibaren Hyper-V'yi destekler ve yeniden üretilebilir ortamları kolaylaştırır
- Vagrant'ı Hyper-V'ye kurmak ve yapılandırmak için özel ağ ve sağlama ayarları gerekir.
- Hyper-V, statik IP'ler gibi belirli özelliklere kolayca izin vermez, ancak tamamlayıcı çözümler vardır
- Önyükleme hatalarını önlemek için Hyper-V uyumlu 'box' imajlarının kullanılması önerilir.

Giriş, Windows'da sanal ortamları hızlı ve düzenli bir şekilde kurun Karmaşık bir görev gibi görünüyor. Neyse ki, şu tür araçlarımız var: Hyper-V'de Vagrant Bunu mümkün kılmak için. Ve kullanımı daha çok VirtualBox ile ilişkilendirilse de, Windows'un birçok versiyonuna entegre edilmiş olan bu sanallaştırma teknolojisiyle de tam uyumludur.
Buna rağmen kurulum ve yapılandırma serseri Hyper-V'de ise göründüğü kadar kolay değil. Orada önemli adımlar ve Microsoft sanallaştırma sağlayıcısının bilmeniz gereken özellikleri. Bu yazımızda sizlere bu formülü takip ederek sanal ortamları sorunsuz bir şekilde başlatabilmeniz için ihtiyacınız olan her şeyi sunacağız.
Vagrant nedir ve neden Hyper-V kullanmalısınız?
serseri bir açık kaynak aracı izin Basit yapılandırma dosyaları aracılığıyla yeniden üretilebilir ve taşınabilir sanal ortamlar oluşturun. Geliştiriciler, sistem yöneticileri veya bilgisayarlar arasında tutarlı ortamlara ihtiyaç duyan ve birden fazla işletim sistemini destekleyen herkes için tasarlanmıştır.
Onun parçası için, Hyper-V, Microsoft'un yerel hipervizörüdürWindows 8.1 ve sonraki sürümlerinin Professional, Enterprise ve Education sürümlerinde bulunur. Özellikle VirtualBox gibi diğer hipervizörlerin modern Windows ortamlarında çakışması durumunda oldukça kullanışlı olan yüksek performans ve kararlılık sunar.
Tercih etmenin en yaygın nedenlerinden biri Hiper-V VirtualBox yerine bazı ürünler, örneğin Docker Masaüstü veya WSL2 (Linux için Windows Alt Sistemi) için Hyper-V'nin etkinleştirilmesi gerekir. Bu durum VirtualBox ile uyumsuzluklara yol açıyor ve servisleri aktif veya pasif hale getirmek istemediğimizde Hyper-V'yi tek geçerli çözüm haline getiriyor.
Vagrant'ı Yükleme ve Hyper-V'yi Etkinleştirme
Hyper-V'de Vagrant'ı kullanmaya başlamadan önce, Bilgisayarınızda Hyper-V'nin etkin olduğundan emin olun. Dikkatli olun, çünkü varsayılan olarak genellikle etkin değildir. Bunu “Windows özelliklerini aç” bölümünden manuel olarak veya PowerShell’de aşağıdaki komutla (yönetici olarak) yapabilirsiniz:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All
Bu komutu yürüttükten sonra, bilgisayarın yeniden başlatılması gerekiyor değişikliklerin yürürlüğe girmesi için.
Buna paralel olarak, şunları yapmalısınız: Vagrant'ı resmi web sitesinden indirin ve kurun. Yükleyici, komutu kullanabilmeniz için ihtiyacınız olan her şeyi içerir vagrant herhangi bir terminalden doğrudan.
Kurulum tamamlandıktan sonra, terminalde aşağıdakileri çalıştırarak her şeyin doğru olduğundan emin olabilirsiniz:
vagrant --version
Bu komut, örneğin yüklü sürümü döndürmelidir Serseri 2.4.0.
Adım 1: Temel bir ortam hazırlayın
Vagrant, önceden yüklenmiş işletim sistemlerinin temel görüntüleri olan "kutulara" dayanmaktadır. Bunlar Vagrant Cloud olarak bilinen genel dizinden otomatik olarak indirilir. Başlamak için projeniz üzerinde çalışacağınız bir klasör oluşturmanız gerekiyor. Örneğin:
mkdir mi_proyecto_vagrant
cd mi_proyecto_vagrant
vagrant init generic/alpine36
Bu komut Vagrantfile adında bir dosya üretecek tüm sanal makine yapılandırmasının bulunduğu yer burasıdır. Hyper-V'yi kullanabilmek için bazı temel parametreleri ayarlamanız gerekecektir.
Hyper-V Sağlayıcı Yapılandırması
Varsayılan olarak, Vagrant, sağlayıcı olarak VirtualBox'ı kullanmayı deneyecek. Hyper-V'yi kullanmak için her seferinde şunu çalıştırarak bunu belirtebilirsiniz:
vagrant up --provider=hyperv
Veya bir ortam değişkeni ayarlayarak Hyper-V'yi varsayılan sağlayıcı olarak ayarlayın:
$env:VAGRANT_DEFAULT_PROVIDER="hyperv"
Bu adım PowerShell'den veya doğrudan sistem ortam değişkenlerinizden yapılabilir.
Vagrantfile'ın içinde, Sağlayıcıyı belirli ayarlarla belirtmeniz önerilir. Basit bir örnek şöyle olabilir:
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
Bu parametreler, atama yapmanıza olanak tanır RAM, çekirdek sayısı ve makinenin Hyper-V'de sahip olacağı isim.
Hyper-V'de ağ oluşturma ve bağlantı
Vagrant'taki Hyper-V'nin zayıf noktalarından biri, ağı otomatik olarak yapılandırmamasıdır. Bu nedenle Hyper-V'de harici bağlantısı önceden oluşturulmuş bir vSwitch'i manuel olarak seçmeniz gerekecektir.
Özel bir ağı ilişkilendirmek veya belirli bir vSwitch'i seçmek için şunları kullanabilirsiniz:
config.vm.network "private_network", bridge: "NombreDelvSwitch"
Unutmayın Hyper-V, Vagrant üzerinden doğrudan statik IP yapılandırmanıza izin vermez., bu nedenle komut dosyaları kullanılarak veya misafir işletim sistemi ayarları değiştirilerek ayarlanmaları gerekir.
Makine erişimi: SSH ve diğer araçlar
SSH'nin Windows'ta kullanılamayacağı düşünülse de, Vagrant yerleşik bir SSH istemcisi içerir, böylece ek program yüklemenize gerek kalmadan erişebilirsiniz.
Giriş yap:
vagrant ssh
PuTTY'yi de kullanabilirsiniz, ancak bu durumda ihtiyacınız olacak Vagrant tarafından oluşturulan özel anahtarı PPK formatına dönüştürün (PuTTYgen ile) doğrudan desteklenmediği için. Anahtar şurada bulunur:
.vagrant/machines/default/hyperv/private_key
Bu, tercih ettiğiniz herhangi bir SSH istemcisinden manuel olarak bağlanmanıza olanak tanır.
Komut dosyalarıyla sağlama
Vagrant'ın en büyük avantajlarından biri, aşağıdakilere olan desteğidir: otomatik provizyonlama, betikler sayesinde. Tekrarlanabilir kurulumlar için kabuk komut dosyalarını başlatabilirsiniz:
config.vm.provision "shell", path: "bootstrap.sh"
Dosyanın içinde bootstrap.sh Şunlara benzer talimatlar ekleyebilirsiniz:
apk update
apk add git
Bu çalışacak VM ilk kez oluşturulduğunda. Eğer betiği daha sonra tekrar uygulamak isterseniz şunları yapabilirsiniz:
vagrant reload --provision
Birden fazla makineyle çalışma
Vagrant, tek bir dosyadan birden fazla makineyi yönetmenize olanak tanır. Bu laboratuvarlar veya sunucu kümeleri için faydalıdır. Tipik bir laboratuvar kurulumu birkaç tanımı içerebilir:
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
Bu, makinelerin birbirlerini şu adlarla tanımasını sağlar: düğüm1.yerel o usta.yerel mDNS kullanımı sayesinde.
Performans ve Uyumluluk İpuçları
Vagrant'ın Hyper-V üzerindeki performansı genel olarak iyidir, ancak bu şunlara bağlıdır:
- Ev sahibi ekibinizin gücü (RAM, CPU, disk tipi).
- Kullanılan temel görüntü (optimize edilmiş kutuları kullanmak daha iyidir).
- Aynı anda çalışan makine sayısı.
- Farklı disk kullanımı ve ince sağlama.
Birden fazla ortamın betiğini oluşturmak için yaygın bir uygulama, kişiselleştirilmiş kutu Zaten tüm kategorilerinizi içeren: araçlar, hizmetler, rotalar, vb. Bu, her örnekte aynı şeyi yeniden yüklemek zorunda kalmanızı önler.
Windows'ta Hyper-V'de Vagrant kullanmak tamamen uygulanabilir, ancak küçük ayarlamalarla çözülebilecek bazı sınırlamalar var. Hyper-V, modern Microsoft teknolojileriyle sağlamlık ve uyumluluk sağlarken, Vagrant geliştirme ortamının otomasyonunu ve taşınabilirliğini kolaylaştırır.
Farklı dijital mecralarda on yıldan fazla deneyime sahip, teknoloji ve internet konularında uzmanlaşmış editör. E-ticaret, iletişim, online pazarlama ve reklam şirketlerinde editör ve içerik yaratıcısı olarak çalıştım. Ekonomi, finans ve diğer sektörlerin internet sitelerinde de yazılar yazdım. İşim aynı zamanda tutkumdur. Artık makalelerim aracılığıyla Tecnobits, Hayatlarımızı iyileştirmek için teknoloji dünyasının bize her gün sunduğu tüm haberleri ve yeni fırsatları keşfetmeye çalışıyorum.



