|
|
|
## VirtualBox-Server
|
|
|
|
|
|
|
|
### 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 dies
|
|
|
|
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 das Zeichen »@« noch
|
|
|
|
der konkrete Namen der virtuellen Maschine ergänzt werden 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 muss für die üblichen Netzwerkzugänge wie »ssh«
|
|
|
|
und »http« auf alternative Portadressen ausgewichen werden. 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.
|
|
|
|
|
|
|
|
### 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/
|
|
|
|
```
|
|
|
|
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).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|