Virtualbox als Serverservice betreiben

Hostinstallation

Es gibt unterdessen verschiedene Produkte, mit denen man Betriebssystem virtualisieren kann. Die einen sind kommerziell und kosten und andere sind gratis, bieten dafür nicht ganz so viel komfort. Zumindest bei Installieren.

Dies soll eine Step-by-Step Anleitung sein, wie man Virtualbox als Serverservice installieren kann. Das ganze basiert auf OpenSUSE 11.3, sollte aber ohne grosse Anpassungen auch unter anderen Linux derivaten funktionieren.

Folgende Hardwareanforderungen gelten für den Host Server:

  • Intel oder AMD CPU mit VT-x/VT-d oder AMD-v Unterstützung
  • min. 2 GB RAM
  • Genügend Festplattenspeicher

Als erstes muss der Linux Host installiert werden. Es genügt den Linux Host mit einer minimalen Konfiguration zu installieren (Textmodus).

Für die Partionierung empfehle ich folgende Konfiguration:

5 GB swap
10 GB /
5 GB /home
Rest /vmware


Ich empfehle, einen separaten Mountpoint für die VM's zu erstellen.

Folgende Pakete müssen nachträglich/zusätzlich installiert werden:

  • make
  • gcc
  • kernel-source
  • apache2
  • apache2-mod_php5

Wenn die Installation dieser Pakete abgeschlossen ist, müssen noch weitere zusätzliche Pakete installiert werden. Leider habe ich es nicht geschaft, alles in einem Schritt zu installieren, resp. nach der Installation hat PHP5 auf dem Apache nicht richtig funktioniert.

  • php5-soap

Achtung: Dieses Paket ist erst nach einer Online Aktualisierung von OpenSUSE 11.3 verfügbar.

Wenn diese Punkte alle erledigt wurden kann Virtualbox installiert werden. In meiner Konfiguration verwendet ich das RPM der Version 3.2.6 für OpenSUSE 11.3.

Dazu das RPM herunterladen und installieren

rpm -i VirtualBox-3.2-3.2.6_63112_openSUSE113-1.x86_64.rpm

Nach der Installation müssen die Virtualbox Kernel Module kompiliert und installiert werden. Dazu muss wie folgt vorgegangen werden:

cd /etc/init.d
./vboxdrv setup

Service installieren

Nun muss Virtualbox als Service konfiguriert werden. Als erstes muss dazu ein Benutzer Names vbox angelegt werden. Wichtig dabei ist, dass er als Shell den Eintrag /bin/false enthält. Somit kann sich niemand mit dem Benutzer anmelden. Im weiteren muss der Benutzer Mitglied von folgenden Gruppen sein.

  • users
  • vboxusers
  • audio
  • cdrom
  • daemon
  • shadow
  • video

Als Default Gruppe muss die Gruppe vboxusers definiert werden.

Danach müssen einige Verzeichniss vorbereitet werden. Folgende Verzeichnisse müssen erstellt werden:

  • /etc/virtualbox
  • /vmware/machines
  • /vmware/harddisks

Die Berechtigungen auf das Verzeichniss müssen danach angepasst werden. Dies kann mit

chown -R vbox /vmwarech
grp -R vboxusers /vmware

gemacht werden. Nun ist fast alles vorbereitet. Im Verzeichnis /etc/virtualbox müssen aber noch 2 Files erstellt werden. Dies kann mit

touch /etc/virtualbox/machines_enabled
touch /etc/virtualbox/diskmount

gemacht werden. Die Files werden zum einen benötigt, um Remote Filessystem zu Mounten und um die VM's beim starten des Host OS automatisch starten zu lassen.

In die Datei /etc/virtualbox/machines_enabled können einfach die Name der VM's eingetragen werden, die beim Start des Host's automatisch gestartet werden sollen.

Hier ein Beispiel:

lxsrv01
lxsrv02
example-Server3

In die Datei /etc/virtualbox/diskmount können irgendwelche NFS Shares, Sambashares usw. angegeben werden, die auf das OS gemounted werden sollen und von Virtualbox benutzt werden. Auch hier ein Beispiel:

192.168.1.1:/vmware /vmware/nas
<ServerIP>:/<NFS Share> /<Local Mount Point>

Nun muss Virtualbox richtig konfiguriert werden. Dazu muss folgender Befehl gestartet werden:

su -s /bin/bash vbox
VBoxManage setproperty machinefolder /vmware/machines
VBoxManage setproperty hdfolder /vmware/harddisks
exit

Virtualbox ist nun richtig konfiguiert für den Einsatz. Nun müssen noch die Startup Scripts installiert werden.

Dies müssen ins Verzeichnis /etc/init.d kopiert werden und über Yast aktiviert werden. Dazu im Yast unter System - Systemdienste (Runlevel) die Dienste vboxcontrol, vboxmount, vboxwebsrv, vboxsrv und apache2 aktivieren.

So nun ist Virtualbox als Server konfiguiert. Leider lässt sich das ding noch schlecht verwalten. Deshalb muss nun noch das Webinterface installiert werden.

Webinterface

Als Webinterface dient das Projekt phpVirtualbox. Die Installation ist relativ einfach. Die Binarys herunterladen und in den Ordner /srv/www/htdocs des Servers kopieren.

Nun noch die Datei /srv/www/htdocs/config.php anpassen. Wichtig dort sind die Einstellungen:

  • $username = 'vbox'
  • $password = '<Kennwort des vbox Linux Benutzers>'
  • $location = 'http://localhost:18083/

Im weiteren ist zu empfehlen die Eigenschaft $browseRestrictFolders auf '/vmware' zu setzen. Somit kann über das Webgui nicht durch den ganzen Server gesurft werden.

Die Eigenschaft $nicMax sollte auf 8 gestellt werden. Ein höherer Wert ist zur Zeit nicht supported.

Weiter würde ich empfehlen, das Web mit einer Datei .htaccess zu schützen. Ist für den Betrieb aber nicht notwendig.