KVM etabliert sich als Standardlösung zur Virtualisierung unter Linux. Der ADMIN-Schwerpunkt hilft beim Bau virtueller Linux-Maschinen, stellt das ... (mehr)

Build my box …

Im einfachsten Fall erzeugen Sie die neue virtuelle Maschine durch den simplen Aufruf von »boxgrinder-build« , wobei Sie als einzigen Parameter den Namen des Appliance Definition File angeben:

boxgrinder-build centos.appl

»boxgrinder-build« muss von Root ausgeführt werden. Die Ausführung dauert mehrere Minuten. Wenn eine Distribution erstmals erzeugt wird, werden alle erforderlichen Pakete heruntergeladen. Boxgrinder speichert die Pakete im Verzeichnis »/var/cache/boxgrinder/rpms-cache« , weswegen ein neuerlicher Aufruf des Kommandos dann wesentlich schneller verarbeitet wird.

Standardmäßig speichert Boxgrinder die resultierenden Dateien (also eine RAW-Datei mit dem virtuellen Datenträger und eine Libvirt-XML-Datei) im folgenden Verzeichnis:

build/appliances/x86_64/<osplugin>/<osversion>/<name>/1.0/<osplugin>-plugin/

Bei der Verwendung des Appliance Definition Files aus Listing 2 ergibt sich also:

build/appliances/x86_64/centos/6/centos/1.0/centos-plugin/

Boxgrinder verwendet normalerweise das RAW-Format für Image-Dateien. Wenn Sie das QCOW2-Format vorziehen, rufen Sie Boxgrinder wie folgt auf:

boxgrinder-build centos.appl --os-config: format:qcow2

In der virtuellen Maschine ist außer »root« kein weiterer Benutzer eingerichtet. Das Root-Passwort lautet standardmäßig »boxgrinder« und sollte aus Sicherheitsgründen sofort beim ersten Start der virtuellen Maschine geändert werden.

Beachten Sie, dass Boxgrinder bei jedem Aufruf testet, ob eine virtuelle Maschine mit dem angegebenen Namen bereits existiert. In diesem Fall verzichtet das Kommando auf eine neuerliche Erzeugung. Das spart Zeit, führt aber dazu, dass Änderungen im Appliance Definition File ignoriert werden. Nach jeder Änderung in dieser Datei müssen Sie Boxgrinder explizit mit der Option »-f« dazu zwingen, die virtuelle Maschine neu einzurichten.

Boxgrinder und Libvirt

Natürlich können Sie die resultierende Image-Datei und die dazugehörende XML-Datei nun manuell am Virtualisierungs-Host installieren. BoxGrinder kann Ihnen aber auch diese Aufgabe abnehmen. Dazu wählen Sie mit der Option »-d« ein Delivery-Plugin aus. Für KVM-Maschinen ist das Libvirt-Plugin am besten geeignet, also »-d libvirt« .

Ohne weitere Optionen kopiert BoxGrinder die Image-Datei dann in das Verzeichnis »/var/lib/libvirt/images« und fügt die virtuelle Maschine in die Liste der von libvirt verwalteten Maschinen hinzu. Wenn der KVM-Host auf einem anderen Rechner läuft oder wenn Sie die Image-Datei in einem anderen Speicherpool ablegen möchten, müssen Sie zwei Zusatzoptionen angeben: connection_uri für die Auslieferung der Beschreibung der virtuellen Maschine (XML-Datei) und »image_delivery_uri« für die Übertragung der Image-Datei:

boxgrinder centos.appl --os-config format:qcow2 -d libvirt --delivery-config connection_uri:qemu+ssh://root@kvmhost/system,image_delivery_uri:sftp://root@kvmhost/var/lib/libvirt/images

Das Boxgrinder-Kommando wird damit sehr unübersichtlich. Soweit die Zusatzoptionen für jeden Boxgrinder-Aufruf zutreffen, ist es deswegen besser, diese in »/root/.boxgrinder/config« zu speichern. Diese Datei kann zum Beispiel aussehen wie in Listing 3 . Der Boxgrinder-Aufruf vereinfacht sich damit wieder zu:

Listing 3

Beispielhafte Boxgrinder-Konfiguration

 

boxgrinder centos.appl -d libvirt

Leider gelten in den von Boxgrinder erzeugten virtuellen Maschinen einige recht seltsame Default-Einstellungen. So werden die virtuellen Festplatten standardmäßig als IDE-Festplatten angesprochen. Dies ändert die Option »bus:virtio« in »/root/.boxgrinder/config« , die auf den Virtio-Treiber umschaltet. Wenn Sie die virtuelle Maschine als QCOW2-Image einrichten, enthält die XML-Datei der virtuellen Maschine ein falsches Speicherformat. Die Einstellung lässt sich mit »virsh edit« oder im Virt-Manager korrigieren (siehe Abbildung 1 ).

Abbildung 1: Bei QCOW2-Images ist das Speicherformat des Datenträgers falsch voreingestellt.

Als Hypervisor kommt Qemu statt KVM zum Einsatz. Das ist auch der Grund dafür, warum die virtuellen Maschinen so langsam laufen. Abhilfe schafft die Option »domain_type:kvm« in »/root/.boxgrinder/config« .

Ähnliche Artikel

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023