Virtualisierung · 5 min read · Jan 19, 2026
Erstellen von virtuellen RedHat/CentOS/Scientific Linux/Fedora Appliances für KVM mit BoxGrinder (Fedora 17)
Erstellen von virtuellen RedHat/CentOS/Scientific Linux/Fedora Appliances für KVM mit BoxGrinder (Fedora 17)
Version 1.0
Autor: Falko Timme
Folge mir auf Twitter
BoxGrinder ist ein Tool, das es Ihnen ermöglicht, virtuelle Maschinen (mit RedHat, CentOS, Scientific Linux oder Fedora als Betriebssystem) für mehrere Virtualisierungstechniken zu erstellen. Derzeit unterstützt es KVM, VMware, Amazon EC2, VirtualBox und VirtualPC. Dieses Tutorial zeigt, wie man BoxGrinder verwendet, um einen CentOS 6 KVM-Gast auf Fedora 17 zu erstellen und ihn auch auf einen Remote-KVM-Host bereitzustellen.
Ich gebe keine Garantie, dass dies bei Ihnen funktioniert!
1 Vorbemerkung
Derzeit ist BoxGrinder als Paket für Fedora 17 verfügbar, jedoch nicht für RedHat/CentOS/Scientific Linux 6. Daher verwende ich ein Fedora 17-System, um einen CentOS KVM-Gast zu erstellen, den Sie lokal ausführen können (wenn Sie Fedora 17 als Ihre KVM-Plattform verwenden) oder auf einen Remote-KVM-Host übertragen können (Sie könnten dies manuell tun, indem Sie die Image-Datei und die XML-Definitionsdatei des Gastes auf den Remote-Host übertragen, aber BoxGrinder hat auch eine integrierte Funktion, die es Ihnen ermöglicht, dies automatisch zu tun).
2 Installation von BoxGrinder
Melden Sie sich als Root-Benutzer an Ihrem Fedora-System an und führen Sie aus:
yum install rubygem-boxgrinder-build3 Verwendung von BoxGrinder
Sie können sich über die Plugins von BoxGrinder und die unterstützten Gastbetriebssysteme informieren, indem Sie ausführen:
boxgrinder-build --version[root@localhost ~]# boxgrinder-build --version
BoxGrinder Build 0.10.4
Verfügbare OS-Plugins:
- rhel Plugin für Red Hat Enterprise Linux
- centos Plugin für CentOS
- fedora Plugin für Fedora
- sl Plugin für Scientific Linux
Verfügbare Plattform-Plugins:
- vmware Plugin für VMware
- ec2 Plugin für Amazon Elastic Compute Cloud (Amazon EC2)
- virtualbox Plugin für VirtualBox
- virtualpc Plugin für VirtualPC
Verfügbare Liefer-Plugins:
- s3 Plugin für Amazon Simple Storage Service (Amazon S3)
- cloudfront Plugin für Amazon Simple Storage Service (Amazon S3)
- ami Plugin für Amazon Simple Storage Service (Amazon S3)
- sftp Plugin für SSH File Transfer Protocol
- ebs Plugin für Elastic Block Storage
- local Plugin für lokales Dateisystem
- elastichosts Plugin für ElasticHosts
- openstack Plugin für OpenStack
- libvirt Plugin für libvirt Virtualisierungs-API
[root@localhost ~]#KVM wird standardmäßig unterstützt, weshalb es nicht als Plugin aufgeführt ist.
Um zu lernen, wie man BoxGrinder verwendet, können Sie eingeben:
boxgrinder-build -h[root@localhost ~]# boxgrinder-build -h
Verwendung: boxgrinder-build [Appliance-Definitionsdatei] [Optionen]
Ein Tool zum Erstellen von VM-Images aus einfachen Definitionsdateien.
Homepage:
http://boxgrinder.org/
Dokumentation:
http://boxgrinder.org/tutorials/
Beispiele:
$ boxgrinder-build jeos.appl
$ boxgrinder-build jeos.appl -f
$ boxgrinder-build jeos.appl --os-config format:qcow2
$ boxgrinder-build jeos.appl -p vmware --platform-config type:personal,thin_disk:true
$ boxgrinder-build jeos.appl -p ec2 -d ami
$ boxgrinder-build jeos.appl -p vmware -d local
Optionen:
-p, --platform [TYPE] Der Name der Plattform, in die Sie konvertieren möchten.
-d, --delivery [METHOD] Die Liefermethode für die ausgewählte Appliance.
-f, --force Erzwingt die Erstellung des Images - entfernt alle vorherigen Builds für die ausgewählte Appliance. Standard: false.
Plugin-Konfigurationsoptionen:
-l, --plugins [PLUGINS] Komma-getrennte Liste zusätzlicher Plugins. Standard: leer.
--os-config [CONFIG] Betriebssystem-Plugin-Konfiguration im Format: key1:value1,key2:value2.
--platform-config [CONFIG] Plattform-Plugin-Konfiguration im Format: key1:value1,key2:value2.
--delivery-config [CONFIG] Liefer-Plugin-Konfiguration im Format: key1:value1,key2:value2.
Protokollierungsoptionen:
--debug Gibt Debug-Informationen während des Builds aus. Standard: false.
--trace Gibt Trace-Informationen während des Builds aus. Standard: false.
-b, --backtrace Gibt vollständigen Backtrace aus, wenn während des Builds Fehler auftreten. Standard: true, wenn das Konsolenprotokoll auf debug oder trace gesetzt ist, andernfalls false.
Allgemeine Optionen:
--change-to-user Wechseln Sie nach Abschluss des OS-Plugins von root zu lokalem Benutzer.
--help Zeigt diese Nachricht an.
--version Gibt die Version aus.
[root@localhost ~]#Im Grunde funktioniert es so: Sie erstellen eine Appliance-Definitionsdatei (z.B. centos.appl) in einem Verzeichnis (z.B. /usr/local/appliances):
mkdir /usr/local/appliances
cd /usr/local/appliances/
vi centos.applDiese Appliance-Definitionsdatei beschreibt unsere KVM-Appliance (wie Name, Betriebssystem (derzeit werden RedHat, CentOS, Scientific Linux und Fedora unterstützt), Root-Passwort, Anzahl der CPUs, RAM, Partitionen (Zahlen bedeuten Größe in GB) und Pakete, die BoxGrinder automatisch installieren wird, wenn es die virtuelle Maschine erstellt):
| name: centos-6-lamp summary: CentOS 6 LAMP version: 1 release: 0 os: name: centos version: 6 password: secret hardware: cpus: 2 memory: 1024 partitions: "/": size: 4 "/var": size: 10 "swap": size: 0.5 packages: - @core - @web-server - @mysql - acpid default_repos: true # standardmäßig true |
Pakete, die mit einem @ beginnen, sind keine einzelnen Pakete, sondern Paketgruppen. Sie können sich über verfügbare Paketgruppen informieren, indem Sie
yum grouplist -vauf einem System ausführen, das das gleiche Betriebssystem ausführt, das Sie in Ihrer Appliance verwenden möchten.
Die Namen der Paketgruppen stehen in Klammern.
Pakete, die nicht mit einem @-Zeichen beginnen, sind keine Paketgruppen, sondern genau dieses einzelne Paket.
BoxGrinder wird immer die neueste verfügbare Version eines Betriebssystems installieren, d.h. wenn Sie CentOS 6 angeben, bedeutet das, dass es 6.3 installiert (6.3 ist die neueste CentOS-Version zum Zeitpunkt des Schreibens).
Sie können BoxGrinder jetzt wie folgt aufrufen (stellen Sie sicher, dass Sie sich im gleichen Verzeichnis befinden, in dem sich centos.appl befindet):
boxgrinder-build centos.applStandardmäßig erstellt BoxGrinder rohe Images. Nach dem Build finden Sie das Image und die XML-Definition im Verzeichnis build/appliances/
ls -l build/appliances/i686/centos/6/centos-6-lamp/1.0/centos-plugin/[root@localhost appliances]# ls -l build/appliances/i686/centos/6/centos-6-lamp/1.0/centos-plugin/
total 863308
-rwxr-xr-x. 1 root root 15569256448 Okt 5 11:44 centos-6-lamp-sda.raw
-rw-r--r--. 1 root root 475 Okt 5 11:42 centos-6-lamp.xml
[root@localhost appliances]#Um eine Appliance im qcow2-Format zu erstellen, würden Sie verwenden
boxgrinder-build centos.appl --os-config format:qcow2anstatt:
ls -l build/appliances/i686/centos/6/centos-6-lamp/1.0/centos-plugin/[root@localhost appliances]# ls -l build/appliances/i686/centos/6/centos-6-lamp/1.0/centos-plugin/
total 1628824
-rw-r--r--. 1 root root 784007168 Okt 5 11:52 centos-6-lamp-sda.qcow2
-rw-r--r--. 1 root root 481 Okt 5 11:51 centos-6-lamp.xml
[root@localhost appliances]#Sie könnten jetzt das Image nehmen und es nach /var/lib/libvirt/images auf Ihrem KVM-Host kopieren und die XML-Datei nach /etc/libvirt/qemu/ auf dem KVM-Host kopieren, virsh öffnen und eine neue virtuelle Maschine aus der XML-Datei definieren, aber anstatt dies manuell zu tun, können Sie BoxGrinder dies für Sie tun lassen (mit dem -d-Schalter):
Wenn Sie beispielsweise die Appliance zu Ihrer lokalen KVM-Installation hinzufügen möchten, führen Sie aus:
boxgrinder-build centos.appl --os-config format:qcow2 -d libvirtDies würde das Image direkt in das Verzeichnis /var/lib/libvirt/images kopieren…
ls -l /var/lib/libvirt/images[root@localhost appliances]# ls -l /var/lib/libvirt/images
total 765636
-rw-r--r--. 1 root root 784007168 Okt 5 11:55 centos-6-lamp-sda.qcow2
[root@localhost appliances]#… und die XML-Datei in das Verzeichnis /etc/libvirt/qemu/:
ls -l /etc/libvirt/qemu/[root@localhost appliances]# ls -l /etc/libvirt/qemu/
total 8
-rw-------. 1 root root 2135 Okt 5 11:55 centos-6-lamp-1-0-centos-6-i686-raw.xml
drwx------. 3 root root 4096 Jun 28 15:52 networks
[root@localhost appliances]#Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.