Linux: Debian „Squeeze“ als VirtualBox-Host + phpVirtualBox

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.

8 Kommentare

  • 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 😉

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.