ADMIN-Tipp: Einzeiler zur VM-Installation

Jede Woche erscheint in unserem Newsletter ein neuer ADMIN-Tipp. Eine Sammlung aller Tipps finden Sie im Archiv der ADMIN-Tipps.

Mit einem einzigen Befehl lässt sich unter Linux eine virtuelle Maschine installieren.

Virtualisierte Systeme lassen sich mit den gleichen Provisioning- und Konfigurationsservern installieren wie richtige Hardware, zum Beispiel mit Cobbler . Allerdings muss ein solches System erst einmal installiert und konfiguriert werden. Wer einfach schnell eine virtuelle Maschine installieren und verwenden möchte, kann stattdessen das Tool "virt-install" verwenden und ihm die Konfigurationsdateien zur automatisierten Installation übergeben. 

Red Hat, CentOS und Fedora verwenden zur automatisierten Installation sogenannte Kickstart-Dateien, in denen sich alle wichtigen Einstellungen niederschreiben lassen, etwa zur Netzwerkkonfiguration, der Partitionierung und der Ausstattung an Paketen. Sie können "virt-install" die Kickstart-Datei mit dem Parameter "-x" übergeben:

virt-install ... -x "ks=http://1.2.3.4/config.ks"

Dazu muss die Datei aber auf einem Webserver liegen, den die zu installierende VM erreichen kann. Alternativ kann "virt-install" die Datei in die initiale RAM-Disk injizieren. Dann verwenden Sie als Referenz zur Kickstart-Datei die URI "file:/centos.ks". Weitere unverzichtbare Angaben sind der Pfad zur virtuellen Disk, die Netzwerkkonfiguration und die RAM-Größe der VM. Für Disk und Netzwerk kommen hier die paravirtualisierten Virtio-Treiber zum Einsatz, die gute Performance versprechen. Das konfigurierte Netzwerk ist hier "internal", in dem eine weitere VM mit zwei Netzwerkkarten läuft, die als Router fungiert - eine der beiden ist ein Bridge-Device zum physischen Netzwerk. Auf der Router-VM läuft außerdem ein DHCP-Server, der die neue VM mit einer IP-Adresse versorgt. Der Aufruf von "virt-install" sieht dann so aus:

virt-install -n centos -r 1024 --cpu=host -l http://mirror.cogentco.com/pub/linux/centos/6/os/x86_64/ --disk path=/var/lib/libvirt/images/centos.img,size=10,bus=virtio --boot kernel_args="console=/dev/ttyS0" -w network=internal,model=virtio --initrd-inject=centos.ks -x "ks=file:/centos.ks console=ttyS0" --graphics none 

Alternativ dazu kann die VM natürlich auch selbst ein Bridge-Device verwenden und so auf das physische Netzwerk zugreifen. Schlägt die Installation fehl oder wollen Sie die VM aus anderen Gründen wieder loswerden, können Sie dies nach dem Stoppen der VM mit "virsh destroy centos" durch den folgenden Befehl erreichen:

virsh undefine centos --remove-all-storage   

Analog läuft die Installation bei Ubuntu- und Debian-Systemen ab, die aber statt Kickstart sogenannte Preseed-Dateien verwenden. Sie sind leider etwas komplizierter aufgebaut und es ist oft schwierig, die richtigen Einstellungen zu finden, zumal sie sich zwischen verschiedenen Debian/Ubuntu-Versionen unterscheiden. Die Datei muss in jedem Fall "preseed.cfg" heißen. Deshalb ist es auch nicht nötig, sie als Extra-Argument anzugeben. Es genügt, wenn die Preseed-Datei an der richtigen Stelle und mit dem richtigen Namen vorhanden ist. Zusätzlich ist hier zu sehen, wie Sie der neuen VM eine MAC-Adresse zuteilen, was praktisch ist, wenn Sie per DHCP eine fest konfigurierte Adresse vergeben:

virt-install -n node2 -r 1024 --cpu=host -l http://archive.ubuntu.com/ubuntu/dists/trusty/main/installer-amd64/ --initrd-inject=preseed.cfg --disk path=/var/lib/libvirt/images/node2.img,size=10,bus=virtio --boot kernel_args="console=/dev/ttyS0" -w network=internal,model=virtio,mac=52:54:00:2b:b8:f2 -x "console=ttyS0" --graphics none

Prinzipiell unterstützt Ubuntu auch ein Subset der Kickstart-Syntax, allerdings mit einigen Einschränkungen. So nennt die Dokumentation " KickstartCompatibility " etwa fehlende LVM- und RAID-Konfiguration sowie Bugs bei der Partitionierung. 

Zum Abschluss noch je eine funktionierende Kickstart- und eine Preseed-Datei für CentOS 6 und Ubuntu 14.04:
centos.ks
preseed.cfg

Wem die Konfiguration über Preseed- oder Kickstart-Dateien zu kompliziert ist, der sollte einen Blick auf Oz werfen, das Templates für alle aktuellen Linux- und auch Windows-Systeme mitbringt und diese mit einer Minimalkonfiguration installiert. 

08.12.2015

Ä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