Erzeugung von KVM-Maschinen mit Boxgrinder und VMBuilder automatisieren

© yewkeo, 123RF

Virtuelle Bastelstunde

Das manuelle Anlegen einer virtuellen Maschine ist unkompliziert, wird aber zu mühsamen Arbeit, wenn man regelmäßig viele virtuelle Maschinen einrichten muss. Mit den Programmen VMBuilder und Boxgrinder lässt sich dieser Prozess automatisieren.
KVM etabliert sich als Standardlösung zur Virtualisierung unter Linux. Der ADMIN-Schwerpunkt hilft beim Bau virtueller Linux-Maschinen, stellt das ... (mehr)

Eigentlich soll Virtualisierungstechnologie dem Administrator die Arbeit erleichtern. Werden aus einigen Servern einige Dutzend VMs, gestaltet sich die vermeintliche Erleichterung schnell als Bürde. Praktisch sind deshalb Tools, die das Anlegen neuer virtueller Rechner erleichtern. Die schnellste und einfachste Methode, um eine neue virtuelle Maschine einzurichten, ist das Klonen. Dazu führen Sie in der Shell das Kommando »virt-clone« aus, zum Beispiel so:

virt-clone --original userver5 --name userver6 --file /var/lib/libvirt/images/userver6.img

»virt-clone« erzeugt eine neue XML-Definitionsdatei für die virtuelle Maschine, kopiert die Image-Datei für die virtuelle Festplatte und gibt dem Netzwerkadapter eine neue, zufällige MAC-Adresse. Die restlichen Hardware-Komponenten bleiben unverändert.

Nach dem Klonen ist allerdings eine Menge Handarbeit erforderlich: Sie müssen in der virtuellen Maschine die Netzwerkkonfiguration anpassen und den Hostnamen neu einstellen. Wenn es in der ursprünglichen virtuellen Maschine einen SSH-Server gab, müssen Sie auch den SSH-Schlüssel der neuen virtuellen Maschine neu erzeugen.

Boxgrinder

Das Klonen ist also mit vielen manuellen Eingriffen verbunden, die fehleranfällig sind. Wozu klonen, wenn Sie virtuelle Maschinen mit einem einzigen Kommando von Grund auf neu erzeugen können? In der Red-Hat-Welt hilft dabei das Boxgrinder-Projekt [1]. Damit lassen sich im Handumdrehen virtuelle Fedora-, RHEL, CentOS- und Scientific-Linux-Maschinen erzeugen. Boxgrinder ist übrigens kein KVM-spezifisches Werkzeug: Es kommt auch mit diversen anderen Virtualisierungs- und Cloud-Systemen zurecht und unterstützt neben KVM auch VMware, Amazon EC2 und Virtualbox. Fertige Boxgrinder-Pakete existieren momentan leider nur für Fedora. Die Installation ist unkompliziert:

yum install rubygem-boxgrinder-build

RHEL- und CentOS-Anwender müssen wohl auf Version 6.4 warten, bis offizielle Boxgrinder-Pakete zur Verfügung stehen. Auch wenn Sie im Produktiveinsatz vermutlich nicht Fedora als KVM-Host einsetzen werden, ist diese Einschränkung weniger schlimm, als es auf den ersten Blick scheint: Zum einen können Sie Boxgrinder unter Fedora ausführen, um beispielsweise eine virtuelle CentOS-Maschine zu erzeugen und auf einem unter CentOS laufenden KVM-Host zu installieren. Fedora dient damit also nur als Vehikel, um Boxgrinder auszuführen, aber nicht als Virtualisierungssystem. Zum anderen können Sie Boxgrinder auf dem KVM-Host in einer virtuellen Maschine ausführen. Auf der Boxgrinder-Website finden Sie hierfür sogar ein fertiges Image [2].

Viele Funktionen von Boxgrinder sind in Plugins implementiert. Es gibt drei Typen von Plugins:

  • OS-Plugins steuern betriebssystemspezifische Details der virtuellen Maschinen.
  • Plattform-Plugins sind für die Besonderheiten des jeweiligen Virtualisierungssystems verantwortlich. Wenn kein Plattform-Plugin zum Einsatz kommt, werden virtuelle KVM-Maschinen erstellt.
  • Delivery-Plugins kümmern sich schließlich darum, wie die virtuelle Maschine ausgeliefert wird, das heißt wie sie zum Virtualisierungs-Host übertragen wird.

Nach der Installation von Boxgrinder verschaffen Sie sich mit dem Kommando »boxgrinder-build --version« einen Überblich über die zur Verfügung stehenden Plugins (siehe Listing 1).

Listing 1

Boxgrinder-Plugins

01 boxgrinder-build --version
02   BoxGrinder Build 0.10.2
03
04   Available os plugins:
05    - rhel plugin for Red Hat Enterprise Linux
06    - centos plugin for CentOS
07    - fedora plugin for Fedora
08    - sl plugin for Scientific Linux
09
10   Available platform plugins:
11    - vmware plugin for VMware
12    - ec2 plugin for Amazon Elastic Compute Cloud (Amazon EC2)
13    - virtualbox plugin for VirtualBox
14    - virtualpc plugin for VirtualPC
15
16   Available delivery plugins:
17    - s3 plugin for Amazon Simple Storage Service (Amazon S3)
18    - cloudfront plugin for Amazon Simple Storage Service (Amazon S3)
19    - ami plugin for Amazon Simple Storage Service (Amazon S3)
20    - sftp plugin for SSH File Transfer Protocol
21    - ebs plugin for Elastic Block Storage
22    - local plugin for Local file system
23    - elastichosts plugin for ElasticHosts
24    - openstack plugin for OpenStack
25    - libvirt plugin for libvirt Virtualisation API

Das Appliance Definition File

Bevor Sie Ihre erste virtuelle Maschine mit Boxgrinder erzeugen, müssen Sie die virtuelle Maschine in einer Textdatei beschreiben, dem sogenannten Appliance Definition File. Diese Datei kann wie in Listing 2 aussehen.

Listing 2

Application Definition File für CentOS

01 name: centos
02 summary: CentOS installation with BoxGrinder
03 os:
04   name: centos
05   version: 6
06 hardware:
07   partitions:
08     "/":
09       size: 4
10     "/home":
11       size: 1
12     "swap":
13       size: 0.5
14   cpus: 1
15   memory: 1024
16 packages:
17   - @core
18   - @mysql
19   - acpid

Zwingend erforderlich sind lediglich die Angaben name sowie »os/name« und »os/version« . Wenn Sie als Betriebssystem »rhel« , »centos« oder »sl« (für Scientific Linux) angeben, müssen Sie als Versionsnummer einfach 5 oder 6 angeben. Boxgrinder berücksichtigt dann automatisch die aktuellste passende Version (momentan also Version 6.3).

Für alle weiteren Parameter kommen gegebenenfalls Defaultwerte zur Anwendung. Im »os« -Abschnitt können Sie mit »password« das gewünschte Root-Passwort angeben (standardmäßig lautet es »boxgrinder« ).

Der »hardware« -Abschnitt ist für die Partitionierung der virtuellen Festplatte zuständig. Hier geben Sie die gewünschten Partitionen mit dem Mount-Punkt und der Größe in GByte an. Falls Sie eine Swap-Partition wünschen, geben Sie statt des Mount-Punkts die Zeichenkette »swap« an. Falls die Partitionierungsdaten fehlen, richtet Boxgrinder lediglich eine ein GByte große Root-Partition ein.

Außerdem bestimmt der »hardware« -Abschnitt die Anzahl der CPU-Cores (standardmäßig einer) und die Größe des RAM-Speichers in MByte bestimmen (standardmäßig 256).

Der »packages« -Abschnitt bestimmt, welche Pakete in der virtuellen Maschine installiert werden. Dabei geben Sie die gewünschten Pakete zeilenweise an, wobei Sie jeweils ein Minuszeichen voranstellen müssen. »@name« bezeichnet Paketgruppen.

Die Paketgruppe »core« ist automatisch ausgewählt. Sie bewirkt bei Fedora- und RHEL-Distributionen eine Minimalinstallation für den Textmodusbetrieb (ungefähr 200 Pakete mit etwa 600 MByte Platzbedarf). Die Namen und der Umfang der Paketgruppen von Red-Hat-basierten Distributionen gehen aus der Datei »repodata/xxx-comps.xml« auf der Installations-DVD hervor. Auch »yum grouplist -v« liefert eine Liste aller Gruppen, wobei die für den Boxgrinder relevanten Gruppen-IDs in Klammern angegeben werden. »yum grouplist« kennt die minimale Core-Gruppe allerdings nicht.

Neben den hier beschriebenen Schlüsselwörtern können Sie im Appliance Definition File zusätzliche Paketquellen angeben (»packages« ), andere Appliance-Dateien integrieren (»appliances« ), einzelne Dateien hinzufügen (»files« ) sowie nach Abschluss der eigentlichen Installation Kommandos ausführen (»post« ). Im Detail sind diese Möglichkeiten in [3] beschrieben.

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Anti-Ransomware-Tools

Ransomware ist nach wie vor eine Plage und das Potenzial, das derartige Schadsoftware besitzt, stellte erst Mitte Mai "WannaDecrypt0r" unter Beweis. Der beste Schutz vor Ransomware sind Backups, doch das wissen auch die Erpresser. Daher begnügen sich diese in Zukunft nicht mehr damit, Dateien "nur" zu verschlüsseln. Vielmehr kopieren sich Angreifer die Daten und drohen mit deren Veröffentlichung. Angesichts zahlloser neuer Varianten lassen sich Virenwächter regelmäßig austricksen. Spezielle Anti-Ransomware-Tools versprechen daher Abhilfe. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Linux-Backup

Welche Backup-Lösung setzen Sie für Linux im professionellen Umfeld ein?

  • keine
  • eigene Scripts
  • rsnapshot
  • rdiff-backup
  • Bacula
  • Bareos
  • Borg
  • Duplicity
  • Amanda
  • Burp
  • Clonezilla
  • Acronis
  • Arkeia
  • SEP sesam
  • Veeam
  • Redo Backup
  • Relax-and-Recover
  • andere kommerzielle Software
  • andere Open-Source-Software

Google+

Ausgabe /2017

Microsite