Bento هو مشروع يقوم بتغليف قوالب Packer لبناء الصناديق الأساسية Vagrant. تم إنشاء مجموعة فرعية من القوالب ونشرها على مؤسسة bento على Vagrant Cloud. تعمل هذه الصناديق المنشورة كمربعات افتراضية لمتشرد المطبخ.
* ملحوظة:
bento test
، يجب تثبيت جواهر المطبخ الاختباري والمطبخ المتشردvboxmanage = []
إلى ملفات os_pkrvars.إضافة صندوق بينتو إلى Vagrant
vagrant box add bento/ubuntu-18.04
استخدام صندوق بينتو في Vagrantfile
Vagrant . configure ( "2" ) do | config |
config . vm . box = "bento/ubuntu-18.04"
end
*1 ملاحظة: يعتبر دعم هؤلاء الموفرين تجريبيًا وقد تكون صور Vagrant Cloud المطابقة موجودة أو غير موجودة.
*2 ملاحظة: دعم AARCH64 أو ARM64 هو عمل جارٍ مضمون فقط من خلال المتوازيات وموفر برامج vmware.
bento
قابل للتنفيذ لإنشاء صندوق Debian vagrant باستخدام أداة bento مع القالب المتوفر في os_pkrvars
dir، يمكننا استخدام الأمر التالي:
bento build --cpus 2 os_pkrvars/debian/debian-12-x86_64.pkrvars.hcl
الخيارات الأخرى المتاحة:
يُستخدم لسرد جميع الإصدارات المتاحة لبنية وحدة المعالجة المركزية لمحطات العمل. تتم تصفية هذه القائمة أيضًا من خلال قسم ملف build.yml do_not_build:. تتم مطابقة كافة الإدخالات عبر regex لتصفية قوالب البناء من القائمة.
يعرض هذا فقط ما سيتم إنشاؤه باستخدام bento build
ولم يتم تحديد أي قالب. إذا تم تحديد أي قالب حتى لو كان موجودًا في ملف build.yml المراد تصفيته، فسوف يتجاوز عامل التصفية.
bento list
إذا نجحت في إنشاء صندوق متشرد باستخدام أداة bento، فيجب أن يكون لديك صندوق متشرد وملف بيانات تعريف في مجلد builds
. يمكنك استخدام هذه الملفات لاختبار البناء من خلال تكوين مطبخ اختباري. قم بتشغيل الأمر التالي لاختبار البناء.
bento test
لتحميل الصناديق الموجودة في دليل التصميمات إلى حسابك السحابي المتشرد، قم بتحديث ملف build.yml لتحديد اسم حسابك وأنظمة التشغيل التي ستكون عامة.
تأكد من قيامك بتكوين vagrant cli وتسجيل الدخول إلى حسابك حتى يعمل أمر التحميل.
bento upload
عند تشغيل bento upload
، سيقرأ كل ملف <box_name>._metadata.json ويستخدم البيانات المقدمة لإنشاء أمر vagrant cloud publish
مع الأوصاف والإصدار والموفر والمجاميع الاختبارية، كلها تأتي من <box_name>._metadata.json ملف.
packer
لإنشاء صندوق Ubuntu 22.04 لموفر VirtualBox فقط
cd < path/to > /bento
packer init -upgrade ./packer_templates
packer build -only=virtualbox-iso.vm -var-file=os_pkrvars/ubuntu/ubuntu-22.04-x86_64.pkrvars.hcl ./packer_templates
لبناء أحدث صناديق Debian 12 لجميع مقدمي الخدمات المحتملين (في وقت واحد)
cd < path/to > /bento
packer init -upgrade ./packer_templates
packer build -var-file=os_pkrvars/debian/debian-12-x86_64.pkrvars.hcl ./packer_templates
لإنشاء أحدث صناديق CentOS 7 لجميع مقدمي الخدمات باستثناء VMware وParallels
cd < path/to > /bento
packer init -upgrade ./packer_templates
packer build -except=parallels-iso.vm,vmware-iso.vm -var-file=os_pkrvars/centos/centos-7-x86_64.pkrvars.hcl ./packer_templates
لاستخدام عنوان URL بديل
cd < path/to > /bento
packer init -upgrade ./packer_templates
packer build -var ' iso_url=https://mirrors.rit.edu/fedora/fedora/linux/releases/39/Server/x86_64/iso/Fedora-Server-dvd-x86_64-39-1.5.iso ' -var-file=os_pkrvars/fedora/fedora-39-x86_64.pkrvars.hcl ./packer_templates
إذا نجحت عملية الإنشاء، فستكون ملفات الصندوق الخاصة بك موجودة في دليل builds
في جذر المستودع.
يجب عليك تنزيل صورة ISO مع برامج تشغيل Windows لأجهزة KVM/qemu شبه الافتراضية ووضعها في دليل builds/iso/. يمكنك القيام بذلك من سطر الأوامر: mkdir -p builds/iso/; wget -nv -nc https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso -O builds/iso/virtio-win.iso
يمكنك استخدام نموذج الأمر التالي لإنشاء مربع KVM/qemu Windows:
packer init -upgrade ./packer_templates
packer build --only=qemu.vm -var-file=os_pkrvars/windows/windows-2022-x86_64.pkrvars.hcl ./packer_templates
تتوفر أيضًا قوالب أنظمة التشغيل المتوفرة فقط عبر الترخيص أو الاشتراك في المستودع، وتتضمن على سبيل المثال لا الحصر: Red Hat Enterprise Linux وSUSE Linux Enterprise. نظرًا لأن معايير ISO ليست متاحة للعامة، فيجب تجاوز قيم URL حسب الاقتضاء. نحن نعتمد على جهود أولئك الذين لديهم إمكانية الوصول إلى الإصدارات المرخصة من أنظمة التشغيل للحفاظ على تحديثها.
يتوقع معظم مقدمي الخدمة وصولاً غير مقيد إلى الشبكات من أجل البناء كما هو متوقع. لا يمكننا تعداد جميع تكوينات جدار الحماية الممكنة ولكننا ندرج بعض المقتطفات أدناه التي قد تكون مفيدة للمستخدمين.
$VS = " Standardswitch "
$IF_ALIAS = ( Get-NetAdapter - Name " vEthernet ( $VS ) " ).ifAlias
New-NetFirewallRule - Displayname " Allow incomming from $VS " - Direction Inbound - InterfaceAlias $IF_ALIAS - Action Allow
لا تدعم الأجهزة الافتراضية Hyper-V Gen 2 محركات الأقراص المرنة. إذا قمت مسبقًا بتوفير الموارد باستخدام محرك أقراص مرنة، فيجب عليك إضافة هذه الملفات إلى صور Gen 2 iso، على وجه الخصوص:
autounattend.xml
: يدعم ملف Gen 2 autounattend.xml
أقسام EFI. قم بتحديث ملف autounattend.xml
باستخدام إصدار Windows الصحيح لأنظمتك وتأكد من صحة الأقسام لموقفك. تحتاج أيضًا إلى إدارة قرص برنامج التشغيل الذي يحتوي على برامج تشغيل خدمات الضيف Hyper-v وضبط ملف autounattend.xml
بالشكل المناسب.الرجاء استخدام مشكلات GitHub للإبلاغ عن الأخطاء أو الميزات أو المشكلات الأخرى.
شكرًا جزيلاً لهذه المشاريع ذات الصلة التي استلهمنا منها وغالبًا ما نستخدمها كمصدر للحلول البديلة في عالم بناء الصناديق الأساسية المعقد.
تم تحويل قوالب Basebox هذه من تعريفات veewee في الأصل استنادًا إلى العمل الذي قام به Tim Dysinger لإنشاء صناديق أساسية معيارية "لا تكرر نفسك" (DRY). شكرا تيم!
Copyright 2012-2024, Progress Software, Inc. (<[email protected]>)
Copyright 2011-2012, Tim Dysinger (<[email protected]>)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.