Bisher hatte ich meine VirtualBox VM's immer auf einem Windows Rechner am Laufen. Da Windows ja auch einiges an Ressourcen braucht kam ich zu der Überlegung VirtualBox auf einem Linux Server zu installieren.
Der Linux Server ist dabei eine Minimal-Installation ohne grafische Oberfläche und somit sparsamer was die verbrauchten Ressourcen angeht.
Im Netz fand ich den Hinweis auf phpVirtualBox. Dies ist eine Webanwendung, die die Oberfläche zum Steuern und Verwalten von VirtualBox VM's über einen Browser ermöglicht.
Mit den Anleitungen aus dem Netz tat ich mich zunächst sehr schwer, es gelang mir zwar VirtualBox zu installieren, meine VM's einzubinden und zu starten, aber phpVirtualBox wollte einfach nicht laufen.
Letztlich lief es darauf hinaus, dass ich nie die richtige Version von phpVirtualBox für die verwendete VirtualBox Installation hatte und es mir auch nicht bewusst war, dass es hier Abhängigkeiten gibt.
Aus diesem Grund habe ich hier dieses HowTo erstellt um villeicht dem einen oder anderen weiter zu helfen.
Eine Bemerkung am Rand: Ja die VM's laufen etwas flüssiger - aber es ist kein Quanntensprung!
Die Veröffentlichung dieses Howtos erfolgt in der Hoffnung, dass es dem Ein oder Anderen von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK.
Dieses HowTo wurde für die folgenden Versionen erstellt:
Die folgende Beschreibung basiert auf einem fertig aufgesetztem Debian Buster Server. Er muss einen Zugang zum Internet haben und eine Zugriffsmöglichkeit (z.B. über ssh) muss zur Verfügung stehen.
Im Laufe der Beschreibung wird ein Apache2 Webserver mit PHP7.x installiert. Sollte auf dem Server bereits ein Apache2 Webserver installiert sein ist dies kein Problem, er kann einfach mitverwendet werden.
Dies zu finden ist ganz einfach: Es wird direkt über "apt-get" herunter geladen und installiert. Eine genaue Beschreibung erfolgt hier im HowTo.
VirtualBox Extension Pack 6.1.16 kann direkt von Oracle bezogen und auf den Server herunter geladen werden. Auch hier erfolgt eine Beschreibung im HowTo.
Beim Herunterladen von phpVirtualBox lag zunächst mein Problem. Die Anleitungen zum Herunterladen waren in den Anleitungen im Netz irreführend oder sogar einfach falsch.
Für die VirtualBox Version 6.1 wird eben auch phpVirtualBox benötigt. Und diese findet man unter <https://github.com/phpvirtualbox/phpvirtualbox>. Die dortige Angaben um an das Paket zu kommen sollten ignoriert werden, ich bekam hier immer nur die Version 5.0.
Daher auf der Seite den grünen Button "Code" drücken und danach "Download ZIP" auswählen - das war es dann auch schon.
Damit VirtualBox über "apt-get" installiert werden kann muss zunächst im Verzeichnis "/etc/apt/sources.list.d" die Datei "virtualbox.list" angelegt werden:
sudo vi /etc/apt/sources.list.d
Die Datei "virtualbox.list" muss den folgenden Inhalt haben:
deb http://download.virtualbox.org/virtualbox/debian buster contrib
Danach wird der Oracle VirtualBox Public Key herutergeladen und installiert:
wget https://www.virtualbox.org/download/oracle_vbox_2016.asc
sudo apt-key add oracle_vbox_2016.asc
Und nun wird VirtualBox 6.1 Installiert:
sudo apt-get update
sudo apt-get install virtualbox-6.1
Kleiner Tipp am Rande: Um festzustellen welche Versionen vorhanden sind, einfach "apt-get install virtualbox" ohne Versionsangabe eingeben. Dann werden die verfügbaren Versionen ausgegeben.
Was jetzt noch fehlt ist der VirtualBox Extension Pack 6.1.16. dieser wird wie folgt herunter geladen und installiert:
cd /tmp
wget https://download.virtualbox.org/virtualbox/6.1.16/Oracle_VM_VirtualBox_Extension_Pack-6.1.16.vbox-extpack
sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-6.1.16.vbox-extpack
Die Kommunikation zwischen phpVirtualBox und VirtualBox muss zwingend mit einem Nicht-Root-User erfolgen. Ich verwende hierzu meinen normalen Benutzer "tom". Dieser wird nun der Gruppe "vboxusers" hinzugefügt:
sudo adduser tom vboxusers
Die Installation ist nun soweit fertig, dass VirtualBox verwendet werden kann. Die Installation von phpVirtualBox ist nicht zwingend notwendig, jedoch ist die Konfiguration von VM's und deren Steuerung über die Befehlszeile nicht sehr komfortabel.
Weiter unten habe ich de Import von vorhandenen VM's und deren Steuerung über die Befehlszeile beschrieben.
Eine Webanwendung braucht auch eine Webserver - logisch. Hier wird nun ein Apach2 Webserver mit PHP7.x aufgesetzt:
sudo apt-get install apache2 php php-common php-mysql libapache2-mod-php php-soap php-cli php-fpm php-json php-pdo php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath
Zunächst muss das Paket am Ablageort entpackt werden:
cd <Verzeichnis>
unzip phpvirtualbox-develop.zip
Danach wird das ganze ins Zielverzeichnis verschoben, umbenannt und die Zugriffsrechte gesetzt:
mv phpvirtualbox-develop /var/www/html/phpvirtualbox
chown -R tom:tom /var/www/html/phpvirtualbox
chmod -R 755 /var/www/html/phpvirtualbox
Im Installationspaket wird auch eine Beispiel-Konfigurationsdatei mitgeliefert. Diese kann mit kleinen Anpassungen verwendet werden:
sudo cp /var/www/html/phpvirtualbox/config.php-example /var/www/html/phpvirtualbox/config.php
sudo vi /var/www/html/phpvirtualbox/config.php
Die folgenden Zeilen müssen angepasst werden:
var $username = 'tom';
var $password = '<Passwort>';
Zum Abschluss wird der VirtualBox Webservice gestartet, der automatisch Start ermöglicht und der Apach2 durchgestartet:
sudo systemctl enable vboxweb-service.service
sudo systemctl start vboxweb-service.service
sudo systemctl reload apache2.service
Nun wird es Zeit einen Webbrowser zu öffnen und auf phpVirtualbox zu zugreifen:
http://http:/<IP-Adrese des Servers>/phpvirtualbox/
Der Benutzer und das Standard-Passwort laute "admin".
Kleiner Tipp am Rande: Sollte phpVirtualBox nicht starten oder Fehlermeldungen auftreten kann mit "ps -ef | grep vbox" überprüft werden ob der VirtualBox Webservice läuft. Sollte dies nicht der Fall sein ist ein Neustart des Servers nicht die schlechteste Idee.
tom@VBoxServer:~$ ps -ef | grep vbox
tom 632 1 0 04:32 ? 00:00:02 /usr/lib/virtualbox/vboxwebsrv --background -H localhost
tom 1100 1094 0 04:51 pts/0 00:00:00 grep vbox
Besonders einfach geht dies, wenn:
Der Import einer vorhandenen VM kann über phpVirtualBox (Menü - Maschine - Hinzufügen) aber auch über die Befehlszeile vorgenommen werden.
Hilfe zur VM-Steuerung
VBoxManage --help
Importieren einer vorhandenen VM
VBoxManage registervm /home/tom/.VirtualBox/Machines/examplevm/examplevm.vbox
Sicher stoppen einer VM
VBoxManage controlvm "Debian Server" acpipowerbutton
Stoppen einer VM
VBoxManage controlvm "Debian Server" poweroff
Pausieren einer VM
VBoxManage controlvm "Debian Server" pause
Zurücksetze einer VM
VBoxManage controlvm "Debian Server" reset
Auflisten aller VM
VBoxManage list vms
Starten einer VM im Headless-Modus
VBoxManage startvm "Debian Server" --type headless