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-build

3 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.appl

Diese 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 -v

auf 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.appl

Standardmäßig erstellt BoxGrinder rohe Images. Nach dem Build finden Sie das Image und die XML-Definition im Verzeichnis build/appliances/////1.0/-plugin/ - in meinem Fall übersetzt sich das in build/appliances/i686/centos/6/centos-6-lamp/1.0/centos-plugin/:

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:qcow2

anstatt:

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 libvirt

Dies 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]#
Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.