Wichtig
Ein manuelles Starten der Client VM führt auch dazu, dass diese möglicherweise einen wartenden Job aus der Jobqueue der vmmain ausführt (also einen Client startet, der gerade an einem Spiel teilnehmen soll). Daher sollte ein manueller Start der Client VM nicht während eines laufenden Spieltages stattfinden.
Versionen
Es gibt eine alte und eine neue ClientVM. Die alte wird als vmclient bezeichnet, die neue als vmclient14.04. Dies ist im weiteren zu beachten (dort wird immer nur vmclient benutzt, wenn man aber die neue VM aktualisieren will, muss man jeweils vmclient durch vmclient14.04 ersetzen).
Starten und Verbinden
Zunächst muss die Client VM Vorlage gestartet werden, damit man diese bearbeiten kann. Dies geschieht auf numerobis mit VBoxHeadless -startvm vmclient (der Aufruf blockiert, solang die VM läuft). Auf die Client VM kommt man dann per SSH von numeroibis oder der vmmain aus (dazu die IP der gestarteten und hochgefahrenen Client VM mit
> VBoxManage guestproperty enumerate vmclient | grep IP
auslesen, dann
> ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no scadmin@<IP>
Oder aber man benutzt das Remote Desktop Protocol (RDP) und verbindet sich auf numerobis 134.245.248.15:. Die VRDE-Portnummer wird angezeigt, wenn man VBoxHeadless ausgeführt hat und ist normalerweise 3390. Dazu kann man unter Linux z.B. rdesktop 134.245.248.15:<VRDE-Port> benutzen.
Ich hatte weder per SSH (keine sichbare IP) als auch per RDP (keine moeglichkeit, Eingaben zu machen) Erfolg. Man kann sich auch per SSH auf numerobis verbinden und dort die GUI fuer VirtualBox mit "VirtualBox" starten. Von dort aus gestartete VMs sind direkt ueber die GUI zugreifbar (allerdings nicht bereits laufende).
Um das Tastaturlayout zu aendern kann man `loadkeys us` bzw. `loadkeys de` benutzen.
Änderungen durchführen
Ist man auf der Client VM, kann man sich einloggen (Benutzerdaten wie auf der vmmain) und die nötigen Änderungen durchführen. Braucht man Internet, kann man die Datei /home/scadmin/connectInternet.sh ausführen, die ein temporäres Gateway über die vmmain einrichtet (ist nach einem Neustart wieder weg). Hat man alle nötigen Änderungen vorgenommen, kann man die VM ganz normal per shutdown-Befehl herunterfahren.
Damit das mit dem Internet funktioniert muss auf der VMMain ip forwarding aktiviert sein und ein entsprechender IPTables eintrag existieren:
sudo sysctl net.ipv4.ip_forward=1 # AUF VMMAIN!
sudo iptables -t nat -A POSTROUTING -o eth8 -j MASQUERADE # AUF VMMAIN!
Weiterhin muss auf der Client VM ein Nameserver in /etc/resolv.conf eingetragen sein (z.B. 8.8.8.8)
Neuen Snapshot anlegen
Nachdem die VM beendet wurde, muss der neue Zustand als Snapshot gespeichert werden, damit davon Klone für die Ausführung der Clients erstellt werden können. Dazu guckt man zunächst mit
> VBoxManage snapshot vmclient list
, welches der zuletzt angelegte Snapshot ist (z.B. snap5). Nun erstellt man einen neuen Snapshot mit
> VBoxManage snapshot vmclient take snap<n+1> --pause
wobei die Nummer des Snapshots erhöht wird (z.B. snap6). Nun muss man noch das Startskrip der Client VM anpassen, sodass es den Klon von dem neuen Snapshot macht. Dazu öffnet man /home/vbox/bin/startVM.sh in einem Editor und bearbeitet die Zeile
VBoxManage clonevm vmclient --snapshot snap5 --options link --name $VMNAME --register
sodass statt snap5 dort der Name des neu erstellten Snapshots steht. Speicher und schließen, fertig. Das wars.