Bento ist ein Projekt, das Packer-Vorlagen zum Erstellen von Vagrant-Basisboxen kapselt. Eine Teilmenge der Vorlagen wird erstellt und in der Bento-Organisation in der Vagrant Cloud veröffentlicht. Diese veröffentlichten Boxen dienen als Standardboxen für Küchenvagranten.
* NOTIZ:
bento test
Testbefehl funktioniert, müssen test-kitchen und kitchen-vagrant gems installiert seinvboxmanage = []
zu os_pkrvars-Dateien.Hinzufügen einer Bento-Box zu Vagrant
vagrant box add bento/ubuntu-18.04
Verwendung einer Bento-Box in einer Vagrant-Datei
Vagrant . configure ( "2" ) do | config |
config . vm . box = "bento/ubuntu-18.04"
end
*1 HINWEIS: Die Unterstützung dieser Anbieter gilt als experimentell und entsprechende Vagrant Cloud-Images sind möglicherweise vorhanden oder nicht.
*2 HINWEIS: Die AARCH64- oder ARM64-Unterstützung ist in Arbeit und wird nur durch den Anbieter Parallels und VMware garantiert.
bento
Um eine Debian-Vagrant-Box mit dem Bento-Tool und der im Verzeichnis os_pkrvars
verfügbaren Vorlage zu erstellen, können wir den folgenden Befehl verwenden:
bento build --cpus 2 os_pkrvars/debian/debian-12-x86_64.pkrvars.hcl
Weitere verfügbare Optionen:
Wird verwendet, um alle für die CPU-Architektur der Workstations verfügbaren Builds aufzulisten. Diese Liste wird auch nach dem Abschnitt „do_not_build:“ der build.yml-Datei gefiltert. Alle Einträge werden über Regex abgeglichen, um Build-Vorlagen aus der Liste herauszufiltern.
Dies zeigt nur, was mit bento build
erstellt werden würde, und es ist keine Vorlage angegeben. Wenn eine Vorlage angegeben wird, auch wenn sie in der zu filternden build.yml enthalten ist, überschreibt sie den Filter.
bento list
Wenn Sie mit dem Bento-Tool erfolgreich eine Vagrant-Box erstellt haben, sollten Sie die Vagrant-Box und eine Metadatendatei im builds
-Ordner haben. Sie können diese Dateien verwenden, um den Build mit einer Testküchenkonfiguration zu testen. Führen Sie den folgenden Befehl aus, um den Build zu testen.
bento test
Um Boxen im Build-Verzeichnis in Ihr Vagrant-Cloud-Konto hochzuladen, aktualisieren Sie die Datei build.yml, um Ihren Kontonamen anzugeben und anzugeben, welche Betriebssysteme öffentlich sein sollen.
Stellen Sie sicher, dass Sie die Vagrant-CLI konfiguriert und sich bei Ihrem Konto angemeldet haben, damit der Upload-Befehl funktioniert.
bento upload
Beim Ausführen bento upload
wird jede Datei <box_name>._metadata.json gelesen und die bereitgestellten Daten verwendet, um den vagrant cloud publish
Befehl mit den Beschreibungen, der Version, dem Anbieter und den Prüfsummen zu generieren, die alle aus der Datei <box_name>._metadata.json stammen Datei.
packer
verwendenSo erstellen Sie eine Ubuntu 22.04-Box nur für den VirtualBox-Anbieter
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
Um die neuesten Debian 12-Boxen für alle möglichen Anbieter (gleichzeitig) zu erstellen
cd < path/to > /bento
packer init -upgrade ./packer_templates
packer build -var-file=os_pkrvars/debian/debian-12-x86_64.pkrvars.hcl ./packer_templates
Um die neuesten CentOS 7-Boxen für alle Anbieter außer VMware und Parallels zu erstellen
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
Um eine alternative URL zu verwenden
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
Wenn der Build erfolgreich ist, befinden sich Ihre Box-Dateien im builds
-Verzeichnis im Stammverzeichnis des Repositorys.
Sie müssen das ISO-Image mit den Windows-Treibern für paravirtualisierte KVM/qemu-Hardware herunterladen und im Verzeichnis builds/iso/ ablegen. Sie können dies über die Befehlszeile tun: 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
Sie können den folgenden Beispielbefehl verwenden, um eine KVM/qemu-Windows-Box zu erstellen:
packer init -upgrade ./packer_templates
packer build --only=qemu.vm -var-file=os_pkrvars/windows/windows-2022-x86_64.pkrvars.hcl ./packer_templates
Vorlagen für Betriebssysteme, die nur über eine Lizenz oder ein Abonnement verfügbar sind, sind ebenfalls im Repository verfügbar. Dazu gehören unter anderem: Red Hat Enterprise Linux und SUSE Linux Enterprise. Da die ISOs nicht öffentlich verfügbar sind, müssen die URL-Werte entsprechend überschrieben werden. Wir verlassen uns auf die Bemühungen derjenigen, die Zugang zu lizenzierten Versionen der Betriebssysteme haben, um diese auf dem neuesten Stand zu halten.
Die meisten Anbieter erwarten einen uneingeschränkten Zugang zur Vernetzung, um wie erwartet bauen zu können. Wir können nicht alle möglichen Firewall-Konfigurationen aufzählen, fügen aber unten einige Auszüge ein, die für Benutzer nützlich sein könnten.
$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-VMs unterstützen keine Diskettenlaufwerke. Wenn Sie zuvor Ressourcen über ein Diskettenlaufwerk bereitgestellt haben, müssen Sie diese Dateien zu Ihren Gen-2-ISO-Images hinzufügen, insbesondere:
autounattend.xml
: Die Gen 2 autounattend.xml
-Datei unterstützt EFI-Partitionen. Aktualisieren Sie die autounattend.xml
mit der richtigen Windows-Version für Ihre Systeme und stellen Sie sicher, dass die Partitionen für Ihre Situation geeignet sind. Sie müssen außerdem die Treiberdiskette verwalten, die die Treiber für die Hyper-V-Gastdienste enthält, und die Datei autounattend.xml
entsprechend anpassen.Bitte nutzen Sie GitHub Issues, um Fehler, Funktionen oder andere Probleme zu melden.
Ein großes Dankeschön an diese verwandten Projekte, von denen wir uns inspirieren ließen und die wir oft als Quelle für Problemumgehungen in der komplexen Welt des Base-Box-Baus genutzt haben.
Diese Basebox-Vorlagen wurden aus Veewee-Definitionen konvertiert, die ursprünglich auf der Arbeit von Tim Dysinger basierten, um modulare Baseboxen „Don't Repeat Yourself“ (DRY) zu erstellen. Danke Tim!
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.