Update |
Das am Ende des Artikels verlinkte Skript funktioniert nun auch mit Fedora und hat gegenüber der Beschreibung einige neue Features hinzugewonnen. |
Wer ein System zum automatisierten Provisioning von Betriebssystemen wie Cobbler oder Foreman verwendet, kann sich viel Handarbeit sparen. Die Installation einer VM auf konventionellem Weg dauert dennoch ziemlich lange, denn eine Vielzahl von Paketen müssen installiert werden. Eigentlich eine sinnlose Arbeit, denn das Ergebnis gleicht sich in den meisten Fällen. Deshalb verfolgen einige Provisioning-Systeme einen anderen Ansatz und verwenden fertige Images, die sie individuell anpassen.
Beispielsweise von Ubuntu gibt es dafür spezielle "Cloud-Images", die erstens sehr klein sind und zweitens beim Booten das Cloud-Init-System verwenden, über das sich sehr leicht Anpassungen vornehmen lassen. So macht es auch Amazon, das seinen Kunden beim Booten eines Linux-OS anbietet, sogenannte User-Daten zu übergeben, in denen beispielsweise Befehle zur Paketinstallation stecken.
Um die Userdaten in die Cloud-VM zu bringen, gibt es einige Wege, zum Beispiel übers Netzwerk und eine vordefinierten IP-Adresse. Der einfachste Weg besteht darin, sie in ein weiteres Image zu packen, das die VM beim Booten automatisch einbindet und verarbeitet. Eine entsprechende Datei sieht dann etwa so aus:
#cloud-config password: cryptic chpasswd: { expire: False } ssh_pwauth: True
Stehen diese Zeilen in der Datei "userdata.txt", erzeugt der folgende Aufruf das dazu gehörige Image "userdata.img":
cloud-localds userdata.img userdata.txt
Eine virtuelle Maschine mit KVM lässt sich per Skript am besten erzeugen, indem man einige Zeilen XML schreibt, die den Aufbau der Maschine spezifizieren, also die CPU, Speicher, Disks und so weiter.
Das komplette Skript, um eine Ubuntu-VM auf die beschriebene Weise in wenigen Sekunden zu starten, finden Sie auf der Github-Seite von ita-net .