(Anleitungen folgen nach und nach…)
Nachdem man sich das entsprechende Iso besorgt hat, installiert man einen „nackten“ Server. Partitionierung habe ich so erledigt:
/dev/sda1 300MB /boot Rest als LVM: /dev/mapper/root 10G / /dev/mapper/swap 10G swap /dev/mapper/data 1T /data Der freie Platz bleibt erst mal frei.
Anschließend habe ich das Meta-Paket xubuntu-desktop
installiert, das spült eine XFCE4 Oberfläche auf das Gerät, so kann man am erät mit der Virtualbox GUI bequem arbeiten.
Damit mir der network-manager nicht immer in die Quere kommt, fliegt der anschließend raus: apt-get remove network-manager
. Die Einstellungen für die 6 Schnittstellen werden in der Datei /etc/network/interfaces
von Hand vorgenommen. So bekommt die aministrative Schnittstelle folgende Paramter:
auto eth0 iface eth0 inet static address 10.16.1.245 netmask 255.240.0.0 network 10.16.0.0 broadcast 10.31.255.255 gateway 10.16.1.254
Als Standardbenutzer habe ich bei der Installation einen Benutzer hostadmin
angelegt, der damikt auch die bei Ubuntu üblichen sudo-Rechte erhalten hat.
Virtualbox habe ich über das Oracle Repo installiert, die folgende Zeile in die /etc/apt/sources.list
# Oracle Virtualbox Repo deb http://download.virtualbox.org/virtualbox/debian precise contrib
dann den Repo-Schlüssel importieren
wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key
schließlich mit apt-get install virtualbox
Virtualbox installieren. Auf der Oracle-Seite kann man dann noch den Extension-Pack hrunterladen und durch „öffen mit Virtualbox“ direkt installieren.
Wichtig: Man muss nun noch sicherstellen, dass der hostadmin
-Benutzer in der Gruppe vboxusers
ist.
Mit phpvirtualbox gibt es eine nette Webgui für Virtualbox, mit der man sich im Extremfall die Installation eines Xservers auf dem Virtualisierungshost ersparen könnte und Virtualbox gänzlich „headless“ bedienen kann.1)
phpvirtualbox benötigt den bei Virtualbox enthaltenen vboxweb-Dienst, dieser muss zunächst konfiguriert werden.
Zuerst muss man die Datei /etc/default/virtualbox
anlegen und dort den User eintragen, der auf dem Host ZUgriff auf die virtuellen Maschinen haben soll - bei uns also der hostadmin
sudo nano /etc/default/virtualbox
dort einfügen
VBOXWEB_USER=vboxuser
Datei speichern. Es darf natürlich auch ein beliebiger anderer Editor verwendet werden… Anschließend kann man mal schauen, ob der Dienst startet:
sudo /etc/init.d/vboxweb-service start
sollte ohne Fehlermeldungen mit
* Starting VirtualBox web service * done.
quittiert werden. Wenn das soweit klappt, sollte man den Dienst noch so einrichten, dass er automatisch beim Booten des Servers startet:
# Entfernt alle evtl vorhandenen Startlinks update-rc.d -f vboxweb-service remove # Legt die Startlinks neu an update-rc.d -f vboxweb-service defaults
Wie der Name bereits vermuten lässt, benötigt die Web-GUI phpvirtualbox einen Webserver und PHP:
sudo apt-get install apache2 php5 unzip
Dann muss man die passende Version von phpvirtualbox von der Projektseite herunterladen und nach /var/www
auspacken:
cd /var/www sudo wget http://phpvirtualbox.googlecode.com/files/phpvirtualbox-<VERSION>.zip unzip phpvirtualbox-<VERSION>.zip mv phpvirtualbox-<VERSION>.zip phpvirtualbox
Jetzt kopiert man die Beispielkonfiguration und passt diese an:
sudo mv /var/www/phpvirtualbox/config.php-example /var/www/phpvirtualbox/config.php sudo nano /var/www/phpvirtualbox/config.php
Man muss nur Benutzername und Passwort anpassen:
var $username = 'vboxuser'; var $password = 'das unix passwort fuer vboxuser';
Um virtuelle Maschinen beim Stoppen und Starten des Hosts automatisch mit zu Stoppen und zu Starten, habe ich noh die beiden vboxtool-Skripte installiert: http://vboxtool.sourceforge.net/
Die Installation geht nach Anleitung problemlos vonstatten:
vboxtool
nach /usr/local/bin
kopieren und ausführbar machen chmod 755 /usr/local/bin/vboxtool/
vboxtoolinit
nach /etc/init.d
kopieren und das Startskript aktivieren mit update-rc.d vboxtoolinit defaults 99 10
/etc/vboxtool/
anlegen, darin die beiden Dateien vboxtool.conf
und machines.conf
Die Datei /etc/vboxtool/vboxtool.conf
muss den Namen des Benutzers enthalten, unter dessen Kennung die virtuellen Maschinen laufen (derselbe wie beim Webfrontend oben):
vbox_user='vboxuser'
Die Datei /etc/vboxtool/machines.conf
enthält die Namen der virtuellen Maschinen, die beim Stoppen und Starten des Hosts mitgestoppt und gestartet werden sollen. Sieht bei mir so aus:
ernest ipcop albert
Kniffliger wirds, wenn die Maschinennamen Leerzeichen enthalten oder man den RDP Port oder Port-Weiterleitungen dort konfigurieren möchte, da verweise ich auf die vboxtool Doku.
Von nun an werden diese drei Maschinen beim Shutdown des Hosts gespeichert, beim Start wieder gestartet, man muss sich also nicht mehr darum kümmern, dass nach einem Reboot alles wieder funktioniert.
Ich habe mich aus zwei Gründen für die Verwendung eines LVM-Volumes anstelle einer vdi-Datei als Festplatte der Servermaschine entschieden:
Zunächst habe auf dem Host ein LVM-Volume angelegt, das nachher an den virtualisierten Server durchgereicht werden soll.
lvcreate -L 1.7T -n albert_disk lise # das 1,7TB große LVM Volume heißt 'albert_disk' und befindet sich in der Volume Group 'lise'
Zuerst habe ich eine virtuelle Maschine schulserver
erzeugt, mit einer kleinen vdi-Disk, so dass das Virtualbox-Verzeichnis der Maschine bereits angelegt wurde. Dann wird die virtuelle Festplatte erzeugt:
VBoxManage internalcommands createrawvmdk -filename /data/vboxuser/virtualbox/schulserver/lvm_albert_root.vmdk -rawdisk /dev/lise/albert_root
Dieser Befehl erzeugt eine vmdk-Datei, die gewissermaßen als Verweis auf das LVM-Volume dient, welches letztlich in der virtuellen Maschine als Festplatte dienen soll. Diese Datei muss dem Benutzer gehören, unter dessen ID die virtuellen Maschinen ausgeführt werden.
chown vboxuser: /data/vboxuser/virtualbox/schulserver/lvm_albert_root.vmdk
Das reicht jedoch nicht aus, da dem Benutzer vboxuser
derzeit der direkte Zugriff auf das LVM-Volume (/dev/lise/albert_disk
) verwehrt ist. Damit das noch klappt, muss man den vboxuser
noch in die Gruppe disk
aufnehmen.
usermod -a -G disk vboxuser
Jetzt kann man in Virtualbox diese vmdk-Datei als Festplatte für die virtuelle Maschine auswählen.
Das LVM-Volume des Hosts wird nun also als Festplatte an den virtuellen Server „durchgereicht“. Nun installiert man den Server ganz normal von einem openLML-iso und wählt dabei möglichst die Option „LVM einrichten“ aus. Das ergibt ein LVM auf einem LVM: