Das es sich bei VirtualBox um eine leistungsfähige Virtualierungslösung handelt, die man auch headless betreiben kann, dürfte soweit bekannt sein. In Verbindung mit phpVirtualBox steht eine browser-basierte Verwaltungsmöglichkeit zur Verfügung.
Wie man Debian 6.0 (“Squeeze”), VirtualBox und phpVirtualBox zusammen bringt wird in diesem Artikel beschrieben.
Für Windows hatte ich das schonmal hier beschrieben.
Zunächst installiert man ein Standard-Debian System ohne grafische Desktop-Umgebung, da es ja ein headless Server werden soll. Positive Nebeneffekte sind weniger Ressourcenbelastung durch die GUI als auch erhöhte Sicherheit, da weniger Komponenten installiert werden.
Bei der Abfrage nach einem neuen Benutzer, der erstellt werden soll, als Benutzernamen “vbox” angeben.
Hinweis: Für manche Hardware wird non-free Firmware, d.h. Treiber, benötigt, die nicht als open source zur Verfügung stehen. Seit Debian 6.0 wird diese non-free Firmware nicht mehr auf dem offiziellen Installations-Medium mitgeliefert. Falls man solche Firmware benötigt, einfach einen USB-Stick der FAT-Formatiert ist nehmen, einen Ordner “firmware” erstellen und aus dem non-free Bereich das Firmware-Archiv herunterladen und dorthin entpacken. Den USB-Stick anschließen und das System von der Debian-CD/DVD starten.
Für das Editieren der Konfigurationsdateien verwende ich nano, man kann natürlich auch vi verwenden.
Nach dem Setup als root anmelden und das System mit
apt-get install & apt-get upgrade
auf den neuesten Stand bringen. Wem hierbei eine Abfrage nach der Installations-CD/DVD begegnet, sollte folgenden Eintrag in der Datei “/etc/apt/source.list” mit # auskommentieren oder entfernen:
deb cdrom:[Debian GNU/Linux 6.0.1a _Squeeze_ – Official amd64 DVD Binary-1 20$…
Der Eintrag kann je nach verwendeten Installations-Medium und -Version variieren.
Um dem System eine feste IP-Adresse zu geben, die Datei “/etc/network/interfaces” bearbeiten. Hier ein Beispiel der Einträge für eth0:
#allow-hotplug eth0
auto eth0
iface eth0 inet static
address 192.168.1.4
netmask 255.255.255.0
gateway 192.168.1.1
Die Einträge für die DNS-Server werden in der Datei “/etc/resolv.conf” vorgenommen:
nameserver 192.168.1.2
Um die neue IP-Konfiguration zu aktivieren den Befehl
/etc/init.d/networking restart
verwenden oder das System neu starten.
Damit man das System aus der Ferne, jenseits von phpVirtualBox, verwalten kann, folgenden Befehl ausführen um den OpenSSH-Server zu installieren:
apt-get install openssh-server
Nun kann das System von einem entfernten Rechner aus administriert werden. Bei Linux und Mac OS ist bereits ein SSH-Client vorhanden. Unter Windows wird meist PuTTY verwendet.
Damit ist das Host-Betriebssystem installiert. Nun geht es darum VirtualBox zu installieren.
Um zukünftig einfach updaten zu können, zunächst die Datei “/etc/apt/sources.list” bearbeiten und folgende Zeile hinzufügen:
deb http://download.virtualbox.org/virtualbox/debian squeeze contrib non-free
Dann den Befehl
wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | apt-key add –
ausführen.
Damit ist das Repository von VirtualBox und der GPG-Key von Oracle dem System bekannt. Jetzt
apt-get update
ausführen und VirtualBox mit
apt-get install virtualbox-4.0
installieren.
In das Home-Verzeichnis eines Benutzers wechseln:
cd /home/BENUTZERNAME
Das Extension Pack herunterladen und installieren:
wget http://download.virtualbox.org/virtualbox/4.0.6/Oracle_VM_VirtualBox_Extension_Pack-4.0.6-71344.vbox-extpack
vboxmanage extpack install Oracle_VM_VirtualBox_Extension_Pack-*.vbox-extpack
Sofern man nicht den bei der Installation angelegten Benutzer verwendet muss nun ein neuer Benutzer angelegt werden:
adduser BENUTZERNAME
Der Benutzer, der die virtuellen Maschinen ausführen soll, muss zu der Gruppe “vboxusers” hinzugefügt werden:
usermod -aG vboxusers BENUTZERNAME
Dieser Schritt muss ebenfalls vollzogen werden, wenn man den bei der Installation angelegten Benutzer verwenden möchte.
Zur Vorbereitung der kommenden phpVirtualBox-Installation muss vboxweb-service konfiguriert werden. Dazu die Datei “/etc/default/virtualbox” erzeugen und mindestens folgenden Eintrag einfügen:
VBOXWEB_USER=vbox
Anschließend den Dienst starten:
/etc/init.d/vboxweb-service start
Damit wäre der Teil um VirtualBox abgeschlossen und es folgt die Installation von phpVirtualBox.
Zunächst muss der Apache Webserver und PHP installiert werden:
apt-get install apache2 libapache2-mod-php5
Damit PHP funktioniert, den Webserver neu starten:
/etc/init.d/apache2 restart
Nun das aktuelle phpVirtualBox-Archiv herunterladen:
wget http://phpvirtualbox.googlecode.com/files/phpvirtualbox-4.0-5.zip
Um das Archiv entpacken zu können, muss zuvor
apt-get install unzip
ausgeführt werden.
Anschließend
unzip phpvirtualbox-4.0-5.zip -d /var/www
ausführen. Nun hat man einen Unterordner namens “phpvirtualbox-4.0-5” unter “/var/www”. Damit man es zukünftig etwas einfacher hat, kann man das Verzeichnis mittels
mv phpvirtualbox-4.0-5 phpvirtualbox
umbenennen.
Um phpVirtualBox einsatzbereit zu machen die Datei “config.php-example” kopieren und umbenennen:
cp config.php-example config.php
Diese Konfigurationsdatei muss bearbeitet werden um folgende Änderungen vorzunehmen:
var $username = ‘BENUTZERNAME’;
var $password = ‘KENNWORT’;
Dabei handelt es sich um den Benutzer, der die virtuellen Maschinen ausführt. Diese Angaben müssen mit den Angaben, die für vboxweb-service gemacht worden sind übereinstimmen.
Wenn man nun einen Browser auf einem anderen Rechner öffnet und als Adresse
http://IP-DES-VIRTUALBOXSERVERS/phpvirtualbox
eingibt, erhält man eine Abfrage nach Benutzername und Kennwort. Standard bei phpVirtualBox ist admin/admin.
Nach erfolgreicher Anmeldung kann man damit beginnen, virtuelle Maschinen anzulegen und zu starten.
Hinweis: Die ISO-Datei mit den VirtualBox-Additions befindet sich in “/usr/share/virtualbox”.
Optional
Um leicht von Windows oder von einem anderen SMB-Client (Linux, Mac) aus ISO-Dateien für die Installation von virtuellen Maschinen auf den VirtualBox-Server kopieren zu können, kann man einen Samba-Server installieren.
Dazu einfach
apt-get install samba
ausführen. Im daraufhin erscheinenden Dialog den Namen der Arbeitsgruppe oder Domäne, in dem sich der Host befindet, angeben:
Die original Samba-Konfiguration mit
mv /etc/samba/samba.conf /etc/samba/samba.conf-org
sichern und mit
nano /etc/samba/smb.conf
eine neue Konfiguration erstellen und folgendes einfügen:
[global]
workgroup = workgroup
security = user
encrypt passwords = yes
share modes = yes
[vbox]
path = /home/vbox
writable = yes
comment = vbox share
printable = no
guest ok = no
Ggf. noch Anpassungen für die eigene Umgebung vornehmen.
Nun muss der Samba-Server einmal neu gestartet werden, damit die geänderte Konfiguration greift:
/etc/init.d/samba restart
Zu guterletzt muss dem Samba-Server noch ein Benutzer bekannt gemacht werden:
smbpasswd -a BENUTZERNAME
Nun kann man sich z.B. von Windows aus mit der Freigabe unter
\\IP-DES-VIRTUALBOXSERVERS\vbox
verbinden. Am besten man erstellt einen Unterordner namens “ISO” und packt dort die ISO-Dateien rein.
Verheiratet, Vater von zwei Kindern, eines an der Hand, eines im Herzen. Schon immer Technik-Freund, seit 2001 in der IT tätig und seit über 10 Jahren begeisterter Blogger. Mit meiner Firma IT-Service Weber kümmern wir uns um alle IT-Belange von gewerblichen Kunden und unterstützen zusätzlich sowohl Partner als auch Kollegen.
Hi,
nach langem hin- und her und ein Paar Modifikationen, z.B. nach:
chown root:shadow /sbin/unix_chkpwd
chmod 2755 /sbin/unix_chkpwd
chown root:shadow /etc/shadow
funktionierte erst der Login. Hast du Probleme mit dem Hinzufügen von Netzwerkadaptern? phpvirtualbox schmeißt mir nur Fehler :/
Hi,
welchen Login meinst du denn?
Ich habe auf dem Host nur als root gearbeitet und mich nicht mit vbox angemeldet.
Meinst du das Hinzufügen von mehreren virtuellen NICs zu den VMs?
Hab’ bisher nur “Standard” VMs wie Sie (php)VirtualBox erstellt verwendet.
Gruß
Andy
Hi,
ich mein den Login zu phpvirtualbox (admin/admin). Es war alles soweit richtig konfiguriert, sowohl Linux User (vbox) als auch in der config.php richtig (vbox/pw) eingetragen. Trotzdem kam es zu einem PAM Fehler in /var/log/auth.log. Anscheinend hat phpvirtualbox ein Prob mit shadow Passwörtern. Es half nur obiger Workaround.
Und ja, ich hätte gerne mehrere virtuelle NICs erstellt die ich meinen VMs zuweisen kann, aber hier scheint es, bei mir zumindest, auch zu krachen. Habe dafür noch keine Lösung gefunden.
Welche phpVirtualBox Version verwendest du denn?
Seit ein paar Minuten ist die Version 4.0-6 raus.
Ich habe gerade die neueste Version installiert und bei einer VM mehrere NICs zugewiesen. Das funktioniert.
Evtl. ist da noch irgendwas anderes im Argen.
Soweit ich das grad gesehen habe, sind Shadow Passwords in Debian 6 “Squeeze” per Default nach der Installation aktiviert. Das sieht man auch daran, das es die Datei “shadow” unter “/etc” gibt.
Verwendete Versionen waren VirtualBox 4.0 aus dem VirtualBox Repository, das Extension Pack 4.0.8 und von phpvirtualbox, ich glaube 4.0-5. Bin mir allerdings nicht mehr ganz sicher ob es nicht schon 4.0-6 war.. ich werde es bei Gelegenheit nochmal mit der 4.0-6 testen.
Im Moment bin ich bei linux-vserver. Läuft eigentlich so halbwegs, ist ja aber leider deprecated..
Hi, ich teste gerade nochmal ein Wenig rum und es funktioniert nun mit der phpvirtualbox 4.0-6 Version! Einzig der oben von mir gepostete Workaround ist noch nötig, sonst scheint alles zu laufen. Prima! 🙂
Glückwunsch! Dann kann das Wochenende ja beginnen 😉