Bento เป็นโปรเจ็กต์ที่ห่อหุ้มเทมเพลต Packer สำหรับสร้างกล่องฐาน Vagrant ชุดย่อยของเทมเพลตถูกสร้างขึ้นและเผยแพร่ไปยังองค์กร Bento บน Vagrant Cloud กล่องที่เผยแพร่เหล่านี้ทำหน้าที่เป็นกล่องเริ่มต้นสำหรับคนเร่ร่อนในครัว
* บันทึก:
bento test
ทำงานทดสอบครัวและอัญมณีเร่ร่อนในครัวต้องได้รับการติดตั้งvboxmanage = []
ลงในไฟล์ os_pkrvarsเพิ่มกล่องเบนโตะให้กับคนเร่ร่อน
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 เป็นงานที่อยู่ระหว่างดำเนินการซึ่งรับประกันผ่านทาง Parallel และผู้ให้บริการ 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
หากคุณสร้างกล่องเร่ร่อนโดยใช้เครื่องมือเบนโตะได้สำเร็จ คุณควรมีกล่องเร่ร่อนและไฟล์ข้อมูลเมตาในโฟลเดอร์ builds
คุณสามารถใช้ไฟล์เหล่านี้เพื่อทดสอบบิลด์ด้วยการกำหนดค่าครัวทดสอบ รันคำสั่งต่อไปนี้เพื่อทดสอบบิลด์
bento test
หากต้องการอัปโหลดกล่องในไดเร็กทอรี builds ไปยังบัญชีคลาวด์คนจรจัดของคุณ ให้อัปเดตไฟล์ 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
หากการ build สำเร็จ ไฟล์ box ของคุณจะอยู่ในไดเร็กทอรี builds
ที่รากของที่เก็บ
คุณต้องดาวน์โหลดอิมเมจ ISO พร้อมไดรเวอร์ Windows สำหรับฮาร์ดแวร์ Paravirtualized 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 VM ไม่รองรับฟล็อปปี้ไดรฟ์ หากก่อนหน้านี้คุณจัดเตรียมทรัพยากรโดยใช้ฟล็อปปี้ไดรฟ์ คุณต้องเพิ่มไฟล์เหล่านั้นลงในอิมเมจ ISO Gen 2 ของคุณ โดยเฉพาะ:
autounattend.xml
: ไฟล์ autounattend.xml
Gen 2 รองรับพาร์ติชัน EFI อัพเดต autounattend.xml
ด้วยเวอร์ชัน Windows ที่ถูกต้องสำหรับระบบของคุณ และตรวจสอบให้แน่ใจว่าพาร์ติชันถูกต้องสำหรับสถานการณ์ของคุณ คุณต้องจัดการดิสก์ไดรเวอร์ที่เก็บไดรเวอร์บริการแขก Hyper-v และปรับไฟล์ autounattend.xml
ตามความเหมาะสมโปรดใช้ปัญหา GitHub เพื่อรายงานข้อบกพร่อง คุณสมบัติ หรือปัญหาอื่นๆ
ขอขอบคุณเป็นอย่างยิ่งสำหรับโครงการที่เกี่ยวข้องเหล่านี้ ซึ่งเราได้รับแรงบันดาลใจและมักจะใช้เป็นแหล่งข้อมูลสำหรับวิธีแก้ปัญหาในโลกที่ซับซ้อนของการสร้างกล่องฐาน
เทมเพลต Basebox เหล่านี้ถูกแปลงจากคำจำกัดความของ veewee ซึ่งเดิมอิงจากงานที่ทำโดย Tim Dysinger เพื่อสร้างกล่องฐานแบบโมดูลาร์ "Don't Repeat Yourself" (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.