Installation eines virtuellen Servers (»VirtualBox«)
Einleitung
Im Folgenden wird gezeigt, wie man auf der Basis von »VirtualBox« einen permanent laufenden Server installieren kann. Die Installation des eigentlichen Betriebssystems z.B. von einem iso-Image sollte mit Hilfe der grafischen Oberfläche (Programm »VirtualBox«) geschehen und wird als bekannt vorausgesetzt. Um mit den folgenden Angaben konform zu sein, sollte die Installation als »root« geschehen und »root« muss der Gruppe »vboxusers« angehören. Wird eine pure Servervariante des Betriebssystem ausgewählt (zu empfehlen), ist es möglicherweise sinnvoll, nicht »3D-Beschleunigung« in der Rubrik »Anzeige« zu aktivieren.
Vorbereitung des systemd-Services
Um das bereits installierte Betriebssystem später automatisch wie bei Server
üblich zu starten, wird auf die Möglichkeiten von »systemd« zurückgegriffen.
Alternativ könnten auch von »VirtualBox« angebotene Möglichkeiten genutzt
werden. Der folgende Code muss dazu unter dem Namen
/etc/systemd/system/vboxvmservice@.service
gespeichert werden:
[Unit]
Description=VBox Virtual Machine %i Service
Requires=systemd-modules-load.service
After=systemd-modules-load.service
[Service]
User=root
Group=vboxusers
ExecStart=/usr/bin/VBoxHeadless -s %i
ExecStop=/usr/bin/VBoxManage controlvm %i savestate
[Install]
WantedBy=multi-user.target
Soll der Service unter einem anderen Account als »root« laufen, muss der Eintrag »User« vorher geändert werden und die virtuelle Maschine ebenfalls unter diesem Account angelegt worden sein. Bei der Datei handelt es sich um eine sogenannte »Template Unit«. Das bedeutet, dass bei späteren Aufrufen dem Zeichen »@« noch der konkrete Name der virtuellen Maschine folgen muss (interner Zugriff per »%i«).
Aktivierung, Start und Stopp des systemd-Services
Es wird im Folgenden angenommen, dass die virtuelle Maschine den Namen »Ubuntu_Xenial_1« hat. (Ob und wie Namen mit Leerzeichen in der systemd-Datei unterstützt werden, ist derzeit nicht bekannt.) In der folgenden Weise können mehrere virtuelle Server verwaltet werden, wenn der Namensbestandteil »Ubuntu_Xenial_1« durch einen anderen ersetzt wird.
Aktivierung
systemctl enable vboxvmservice@Ubuntu_Xenial_1
Start
systemctl start vboxvmservice@Ubuntu_Xenial_1
Stopp
systemctl stop vboxvmservice@Ubuntu_Xenial_1
Zugriff von außen
Grundsätzlich ist die virtuelle Maschine über dieselbe IP-Adresse wie der Host erreichbar. Aus diesem Grund ist es oft sinnvoll, für die üblichen Netzwerkzugänge wie »ssh« und »http« auf alternative Portadressen auszuweichen. Eine solche Portumsetzung wird von »VirtualBox« in der folgenden Weise unterstützt:
VBoxManage modifyvm "Ubuntu_Xenial_1" --natpf1 "gastssh,tcp,,2222,,22"
VBoxManage modifyvm "Ubuntu_Xenial_1" --natpf1 "gasthttp,tcp,,8080,,80"
VBoxManage showvminfo "Ubuntu_Xenial_1" --details | grep "NIC 1"
Vorausgesetzt wird, dass beim Anlegen der virtuellen Maschine der erste Netzwerkadapter mit Standardeinstellungen ausgewählt wurde.
Der ssh-Zugriff auf den virtuellen Server kann nun z.B. per
ssh niepra01@i75422 -p2222
erfolgen. Der http-Zugriff (Port 80 eines http-Servers im virtuellen Server) wird für die Außenwelt über den Port 8080 erreichbar sein.
Mit dem von »VirtualBox« bereitgestellten RDP-Server (»Remote Desktop Protocol«, Port 3389) besteht eine weitere Möglichkeit, sich mit dem virtuellen Server zu verbinden. Beispiel:
rdesktop i75422
Zugriff nach außen
Mit z.B.
ssh niepra01@10.0.2.2
kann man sich auf den Host einloggen.
Hat man bei der Einrichtung der virtuellen Maschine einen »gemeinsamen Ordner« (»shared folder«) eingerichtet, besteht damit eine weitere Möglichkeit des Datenaustausches. Angenommen sein Name lautet »vbox-common«, dann geschieht der Zugriff innerhalb des virtuellen Servers über
/media/sf_vbox-common/
Für einen bequemen Zugriff kann man noch
ln -s /media/sf_vbox-common $HOME/vbox-common
ausführen. Zu beachten ist allerdings, dass der angemeldete Nutzer der Gruppe »vboxsf« angehören muss. Man kann sich selbst dieser Gruppe z.B. mit
sudo usermod -a -G vboxsf niepra01
zuordnen (danach ab- und anmelden).