- يدعم 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 هو برنامج Hypervisor الأصلي من Microsoft، المضمنة في الإصدارات Professional وEnterprise وEducation من Windows 8.1 والإصدارات الأحدث. إنه يوفر أداءً واستقرارًا عاليًا، وهو مفيد بشكل خاص عندما تتعارض برامج التشغيل الافتراضية الأخرى مثل VirtualBox في بيئات Windows الحديثة.
أحد الأسباب الأكثر شيوعًا للاختيار فرط-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
يجب أن يقوم هذا الأمر بإرجاع الإصدار المثبت، على سبيل المثال متشرد 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
هذا سوف يعمل المرة الأولى التي يتم فيها إنشاء الجهاز الظاهري. إذا كنت تريد إعادة تطبيق البرنامج النصي لاحقًا، فيمكنك القيام بما يلي:
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 master.local بفضل استخدام mDNS.
نصائح الأداء والتوافق
يعد أداء Vagrant على Hyper-V جيدًا بشكل عام، ولكن ذلك يعتمد على:
- قوة فريقك المضيف (RAM، CPU، نوع القرص).
- الصورة الأساسية المستخدمة (من الأفضل استخدام الصناديق المُحسّنة).
- عدد الآلات التي تعمل في نفس الوقت.
- استخدام القرص التفاضلي والتزويد الرقيق.
الممارسة الشائعة لكتابة نصوص برمجية لبيئات متعددة هي إنشاء صندوق شخصي الذي يتضمن بالفعل جميع فئاتك: الأدوات، والخدمات، والطرق، وما إلى ذلك. وهذا يتجنب الحاجة إلى إعادة تثبيت نفس الشيء في كل حالة.
يعد استخدام Vagrant على Hyper-V على نظام التشغيل Windows أمرًا قابلاً للتطبيق تمامًا، على الرغم من وجود بعض القيود التي يمكن حلها بإجراء تعديلات صغيرة. يوفر Hyper-V المتانة والتوافق مع تقنيات Microsoft الحديثة، بينما يسهل Vagrant أتمتة بيئة التطوير وقابليتها للنقل.
محرر متخصص في قضايا التكنولوجيا والإنترنت بخبرة تزيد عن عشر سنوات في الوسائط الرقمية المختلفة. لقد عملت كمحرر ومنشئ محتوى لشركات التجارة الإلكترونية والاتصالات والتسويق عبر الإنترنت وشركات الإعلان. لقد كتبت أيضًا في مواقع الاقتصاد والمالية والقطاعات الأخرى. عملي هو أيضا شغفي. الآن من خلال مقالاتي في Tecnobits، أحاول استكشاف كل الأخبار والفرص الجديدة التي يقدمها لنا عالم التكنولوجيا كل يوم لتحسين حياتنا.



