- Vagrant menyokong Hyper-V daripada Windows 8.1 atau lebih tinggi dan memudahkan persekitaran yang boleh dihasilkan semula
- Memasang dan mengkonfigurasi Vagrant pada Hyper-V memerlukan tetapan rangkaian dan peruntukan khusus.
- Hyper-V tidak membenarkan ciri tertentu seperti IP statik dengan mudah, tetapi terdapat penyelesaian pelengkap
- Adalah disyorkan untuk menggunakan imej 'kotak' yang serasi dengan Hyper-V untuk mengelakkan ralat but.

Masukan, Sediakan persekitaran maya dengan cepat dan teratur dalam Windows Ia kelihatan seperti misi yang kompleks. Nasib baik, kami mempunyai alat seperti itu Vagrant di Hyper-V untuk menjadikannya mungkin. Dan walaupun penggunaannya lebih dikaitkan dengan VirtualBox, ia juga serasi sepenuhnya dengan teknologi maya ini yang sudah disepadukan ke dalam banyak versi Windows.
Walaupun begitu, memasang dan mengkonfigurasi Vagrant dalam Hyper-V ia tidak semudah yang disangka. ada langkah utama dan keanehan penyedia virtualisasi Microsoft yang patut anda ketahui. Dalam artikel ini, kami akan memberikan anda semua yang anda perlukan untuk melancarkan persekitaran maya mengikut formula ini tanpa sebarang masalah.
Apakah Vagrant dan mengapa menggunakan Hyper-V?
Vagrant adalah alat sumber terbuka membenarkan membina persekitaran maya yang boleh dihasilkan dan mudah alih melalui fail konfigurasi mudah. Ia direka untuk pembangun, pentadbir sistem atau sesiapa sahaja yang memerlukan persekitaran yang konsisten merentas komputer, dengan sokongan untuk berbilang sistem pengendalian.
Bagi pihaknya, Hyper-V ialah hypervisor asli Microsoft, disertakan dalam versi Profesional, Perusahaan dan Pendidikan bagi Windows 8.1 dan lebih baru. Ia menawarkan prestasi tinggi dan kestabilan, terutamanya berguna apabila hipervisor lain seperti konflik VirtualBox dalam persekitaran Windows moden.
Salah satu sebab yang paling biasa untuk memilih Hiper V bukannya VirtualBox ialah beberapa produk, seperti Desktop Docker atau WSL2 (Windows Subsystem untuk Linux), memerlukan Hyper-V untuk didayakan. Ini mewujudkan ketidakserasian dengan VirtualBox, menjadikan Hyper-V satu-satunya penyelesaian yang sah jika kita tidak mahu mengaktifkan dan menyahaktifkan perkhidmatan.
Memasang Vagrant dan Mendayakan Hyper-V
Sebelum anda mula menggunakan Vagrant pada Hyper-V, Pastikan komputer anda telah mendayakan Hyper-V. Berhati-hati, kerana ia biasanya tidak didayakan secara lalai. Anda boleh melakukan ini secara manual dari bahagian "Hidupkan ciri Windows" atau dengan arahan berikut dalam PowerShell (sebagai pentadbir):
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All
Selepas melaksanakan arahan ini, restart komputer diperlukan untuk perubahan yang berlaku.
Secara selari, anda mesti Muat turun dan pasang Vagrant dari tapak web rasmi. Pemasang termasuk semua yang anda perlukan untuk dapat menggunakan arahan vagrant terus dari mana-mana terminal.
Setelah dipasang, anda boleh mengesahkan bahawa semuanya betul dengan menjalankan yang berikut dalam terminal:
vagrant --version
Perintah ini harus mengembalikan versi yang dipasang, sebagai contoh 2.4.0 pudar.
Langkah 1: Sediakan persekitaran asas
Vagrant adalah berdasarkan "kotak", yang merupakan imej asas sistem pengendalian prapasang. Ini dimuat turun secara automatik daripada indeks awam yang dikenali sebagai Vagrant Cloud. Untuk bermula, anda perlu mencipta folder tempat anda akan bekerja pada projek anda. Contohnya:
mkdir mi_proyecto_vagrant
cd mi_proyecto_vagrant
vagrant init generic/alpine36
Perintah ini akan menghasilkan fail bernama Vagrantfile yang mana semua konfigurasi mesin maya berada. Di dalamnya anda perlu melaraskan beberapa parameter utama untuk menggunakan Hyper-V.
Konfigurasi Pembekal Hyper-V
Secara lalai, Vagrant akan cuba menggunakan VirtualBox sebagai pembekal. Untuk menggunakan Hyper-V, anda boleh menentukan ini setiap kali dengan menjalankan:
vagrant up --provider=hyperv
Atau, tetapkan Hyper-V sebagai pembekal lalai dengan menetapkan pembolehubah persekitaran:
$env:VAGRANT_DEFAULT_PROVIDER="hyperv"
Langkah ini boleh dilakukan daripada PowerShell atau terus dalam pembolehubah persekitaran sistem anda.
Di dalam Vagrantfile, Adalah disyorkan untuk menentukan pembekal dengan tetapan tertentu. Contoh asas ialah:
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
Parameter ini membolehkan anda menetapkan RAM, bilangan teras, dan nama mesin akan ada dalam Hyper-V.
Rangkaian dan ketersambungan dalam Hyper-V
Salah satu kelemahan Hyper-V dalam Vagrant ialah ia tidak mengkonfigurasi rangkaian secara automatik. Atas sebab ini, anda perlu memilih vSwitch secara manual dengan sambungan luaran yang telah dibuat dalam Hyper-V.
Untuk mengaitkan rangkaian peribadi atau memilih vSwitch tertentu, anda boleh menggunakan:
config.vm.network "private_network", bridge: "NombreDelvSwitch"
Harap maklum bahawa Hyper-V tidak membenarkan anda mengkonfigurasi IP statik secara langsung daripada Vagrant., jadi ia mesti ditetapkan menggunakan skrip atau dengan mengubah suai tetapan sistem pengendalian tetamu.
Akses mesin: SSH dan alatan lain
Walaupun nampaknya SSH tidak boleh digunakan pada Windows, Vagrant termasuk pelanggan SSH terbina dalam, supaya anda boleh mengaksesnya tanpa perlu memasang program tambahan.
Log masuk dengan:
vagrant ssh
Anda juga boleh menggunakan PuTTY, tetapi dalam kes itu anda perlu Tukar kunci peribadi yang dijana oleh Vagrant ke dalam format PPK (dengan PuTTYgen), kerana ia tidak disokong secara langsung. Kuncinya terletak di:
.vagrant/machines/default/hyperv/private_key
Ini akan membolehkan anda menyambung secara manual daripada mana-mana klien SSH yang anda suka.
Peruntukan dengan skrip
Salah satu faedah terbesar Vagrant ialah sokongannya untuk peruntukan automatik, terima kasih kepada skrip. Anda boleh melancarkan skrip shell untuk pemasangan berulang:
config.vm.provision "shell", path: "bootstrap.sh"
Di dalam fail bootstrap.sh Anda boleh memasukkan arahan seperti:
apk update
apk add git
Ini akan berjalan kali pertama VM dicipta. Jika anda ingin memohon semula skrip kemudian, anda boleh lakukan:
vagrant reload --provision
Bekerja dengan pelbagai mesin
Vagrant membolehkan anda mengurus lebih daripada satu mesin daripada satu fail. Ini berguna untuk makmal atau kluster pelayan. Persediaan biasa untuk makmal mungkin termasuk beberapa definisi:
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
Ini membolehkan mesin mengenali satu sama lain dengan nama seperti nod1.local o tuan.tempatan terima kasih kepada penggunaan mDNS.
Petua Prestasi dan Keserasian
Prestasi vagrant pada Hyper-V secara amnya baik, tetapi ia bergantung kepada:
- Kuasa pasukan tuan rumah anda (RAM, CPU, jenis cakera).
- Imej asas yang digunakan (lebih baik menggunakan kotak yang dioptimumkan).
- Bilangan mesin berjalan pada masa yang sama.
- Penggunaan cakera berbeza dan peruntukan nipis.
Amalan biasa untuk menskrip berbilang persekitaran ialah mencipta a kotak peribadi yang sudah termasuk semua kategori anda: alatan, perkhidmatan, laluan, dll. Ini mengelakkan daripada memasang semula perkara yang sama dalam setiap kejadian.
Menggunakan Vagrant pada Hyper-V pada Windows adalah berdaya maju sepenuhnya, walaupun dengan beberapa batasan yang boleh diselesaikan dengan pelarasan kecil. Hyper-V menyediakan keteguhan dan keserasian dengan teknologi Microsoft moden, manakala Vagrant memudahkan automasi dan mudah alih persekitaran pembangunan.
Editor khusus dalam isu teknologi dan internet dengan lebih daripada sepuluh tahun pengalaman dalam media digital yang berbeza. Saya telah bekerja sebagai editor dan pencipta kandungan untuk e-dagang, komunikasi, pemasaran dalam talian dan syarikat pengiklanan. Saya juga telah menulis di laman web ekonomi, kewangan dan sektor lain. Kerja saya juga minat saya. Sekarang, melalui artikel saya dalam Tecnobits, saya cuba meneroka semua berita dan peluang baharu yang dunia teknologi tawarkan kepada kita setiap hari untuk memperbaiki kehidupan kita.



