Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
— | anwenderwiki:leoclient2 [2018/10/29 10:04] (aktuell) – [Leoclient 2 - Ergänzungen] roesslerrr | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | {{tag> leoclient}} | ||
+ | ====== Leoclient 2 - Ergänzungen ====== | ||
+ | |||
+ | Installation und Beschreibung siehe -> http:// | ||
+ | |||
+ | ===== VirtualBox starten - ohne VM Start ===== | ||
+ | |||
+ | Mit dem Befehl: | ||
+ | # leovirtstarter2 --vbox | ||
+ | wird die Virtual-Box GUI der ausgewählten VM gestartet, jedoch nicht die VM selbst. Danach kann man z.B. die Hardwarekonfiguration der VM ändern. Diese Änderung landet dann in der ''/< | ||
+ | |||
+ | Um Änderungen dauerhaft zu übernehmen startet man am Besten das Script: | ||
+ | # sudo leoclient2-base-snapshot-renew | ||
+ | Dieses setzt alle Konfigurationsdateien dauerhaft im " | ||
+ | ===== Aktuellen Snapshot/ | ||
+ | |||
+ | Nachfolgendes Script legt mit dem aktuellen Snapshot der VM einen neuen auswählbaren Snapshot an. Ohne Angabe eines Snapshot-Namens wird der standard-Snapshot neu gesetzt. Script muss mit root-Rechten gestartet werden, man legt es am besten unter **''/ | ||
+ | |||
+ | Vorgehensweise: | ||
+ | - Arbeiten als linuxadmin am Ubuntu-Client | ||
+ | - Bisherigen base/ | ||
+ | - Software installieren und sonstige Veränderungen abarbeiten, VM dann herunterfahren | ||
+ | - untenstehendes Script aufrufen:< | ||
+ | Damit gibt es nun einen neuen Snapshot mit dem Namen " | ||
+ | <code text / | ||
+ | #!/bin/bash | ||
+ | # | ||
+ | # / | ||
+ | # | ||
+ | # Usage: | ||
+ | # Ohne Snapshot-name wird der standard-Snapshot gesetzt | ||
+ | # Script als root ausführen | ||
+ | # | ||
+ | |||
+ | etcdir="/ | ||
+ | OPTIND=1 | ||
+ | VMPATH="/ | ||
+ | |||
+ | vm="" | ||
+ | S_NAME=" | ||
+ | MACHINENAME="" | ||
+ | MACHINEPATH="" | ||
+ | |||
+ | while getopts " | ||
+ | case " | ||
+ | m) vm=$OPTARG | ||
+ | ;; | ||
+ | s) S_NAME=$OPTARG | ||
+ | ;; | ||
+ | esac | ||
+ | done | ||
+ | |||
+ | shift $((OPTIND-1)) | ||
+ | [ " | ||
+ | |||
+ | for file in " | ||
+ | pfad=`cat $file` | ||
+ | b=$(basename " | ||
+ | if [ " | ||
+ | MACHINENAME=$b | ||
+ | MACHINEPATH=$pfad | ||
+ | fi | ||
+ | done | ||
+ | |||
+ | if [ " | ||
+ | echo " | ||
+ | exit 1 | ||
+ | fi | ||
+ | |||
+ | snapshotdir=" | ||
+ | s_filepfad=`find $snapshotdir -name " | ||
+ | |||
+ | if [ " | ||
+ | echo " | ||
+ | exit 1 | ||
+ | fi | ||
+ | |||
+ | SNAPSHOTPATH=" | ||
+ | |||
+ | if [ -d " | ||
+ | rm -Rf $SNAPSHOTPATH/ | ||
+ | else | ||
+ | mkdir " | ||
+ | fi | ||
+ | |||
+ | cp -f " | ||
+ | FILESIZE=$(stat -c%s " | ||
+ | echo $FILESIZE > " | ||
+ | |||
+ | sf=$(basename " | ||
+ | z_filepfad=" | ||
+ | |||
+ | zip -9 -j $z_filepfad $s_filepfad | ||
+ | FILESIZE=$(stat -c%s " | ||
+ | echo $FILESIZE > " | ||
+ | |||
+ | chmod -R 755 " | ||
+ | |||
+ | echo " | ||
+ | |||
+ | exit 0 | ||
+ | </ | ||
+ | |||
+ | ===== VM direkt starten ===== | ||
+ | Nachfolgendes Script startet direkt ohne Dialog eine VM. Das Script ermittelt den aktuellen Snapshot-Namen " | ||
+ | Script unter **''/ | ||
+ | Aufruf z.B.: | ||
+ | # leoclient2-directstart -m winxp -r 1024 - s standard | ||
+ | <code text / | ||
+ | #! /bin/bash | ||
+ | # | ||
+ | # / | ||
+ | # | ||
+ | # m: Name der lokalen VM | ||
+ | # s: Name des lokalen Snapshots, ohne wird "wie vorgefunden" | ||
+ | # r: RAM in MB | ||
+ | # | ||
+ | # Version 3 - September 2015 | ||
+ | |||
+ | etcdir="/ | ||
+ | OPTIND=1 | ||
+ | |||
+ | vm="" | ||
+ | S_NAME="" | ||
+ | MACHINENAME="" | ||
+ | MACHINEPATH="" | ||
+ | RAM=" | ||
+ | |||
+ | while getopts " | ||
+ | case " | ||
+ | m) vm=$OPTARG | ||
+ | ;; | ||
+ | s) S_NAME=$OPTARG | ||
+ | ;; | ||
+ | r) RAM=$OPTARG | ||
+ | ;; | ||
+ | esac | ||
+ | done | ||
+ | |||
+ | shift $((OPTIND-1)) | ||
+ | [ " | ||
+ | |||
+ | for file in " | ||
+ | pfad=`cat $file` | ||
+ | b=$(basename " | ||
+ | if [ " | ||
+ | MACHINENAME=$b | ||
+ | MACHINEPATH=$pfad | ||
+ | fi | ||
+ | done | ||
+ | |||
+ | if [ " | ||
+ | echo " | ||
+ | exit 1 | ||
+ | fi | ||
+ | |||
+ | sudo / | ||
+ | |||
+ | if [ " | ||
+ | SNAPSHOTPATH=" | ||
+ | if [ -d " | ||
+ | # Name des aktuellen Snapshots aus der VBox-XML-Dstei ermitteln | ||
+ | XMLPATH=" | ||
+ | SNAPSHOTNAME=`sed -n ' | ||
+ | # echo $SNAPSHOTNAME | ||
+ | if [ -f " | ||
+ | rm -Rf " | ||
+ | unzip " | ||
+ | cp -f " | ||
+ | echo " | ||
+ | elif [ -f " | ||
+ | rm -Rf " | ||
+ | unzip " | ||
+ | cp -f " | ||
+ | else | ||
+ | echo " | ||
+ | exit 1 | ||
+ | fi | ||
+ | fi | ||
+ | fi | ||
+ | |||
+ | # Berechtigungen des Snapshots Ueberpruefen | ||
+ | |||
+ | if [ -f " | ||
+ | auser=1 | ||
+ | ahost=1 | ||
+ | buser=0 | ||
+ | bhost=0 | ||
+ | HOST=$(hostname) | ||
+ | ROOM=`groups $HOST | gawk -F" " '{ print $3 }'` | ||
+ | GROUP=`groups $USER | gawk -F" " '{ print $3 }'` | ||
+ | # echo " | ||
+ | IFS=" | ||
+ | while read -r name value | ||
+ | do | ||
+ | liste=${value// | ||
+ | # echo " | ||
+ | if [ " | ||
+ | auser=0 | ||
+ | IFS="," | ||
+ | for u in $liste | ||
+ | do | ||
+ | if [ " | ||
+ | buser=1 | ||
+ | echo " | ||
+ | fi | ||
+ | done | ||
+ | fi | ||
+ | if [ " | ||
+ | auser=0 | ||
+ | IFS="," | ||
+ | for u in $liste | ||
+ | do | ||
+ | if [ " | ||
+ | buser=1 | ||
+ | echo " | ||
+ | fi | ||
+ | done | ||
+ | fi | ||
+ | if [ " | ||
+ | ahost=0 | ||
+ | IFS="," | ||
+ | for u in $liste | ||
+ | do | ||
+ | if [ " | ||
+ | bhost=1 | ||
+ | echo " | ||
+ | fi | ||
+ | done | ||
+ | fi | ||
+ | if [ " | ||
+ | ahost=0 | ||
+ | IFS="," | ||
+ | for u in $liste | ||
+ | do | ||
+ | if [ " | ||
+ | bhost=1 | ||
+ | echo " | ||
+ | fi | ||
+ | done | ||
+ | fi | ||
+ | IFS=" | ||
+ | done < " | ||
+ | |||
+ | if [ $auser = 0 ] && [ $buser = 0 ]; then | ||
+ | echo " | ||
+ | exit 1 | ||
+ | fi | ||
+ | |||
+ | if [ $ahost = 0 ] && [ $bhost = 0 ]; then | ||
+ | echo " | ||
+ | exit 1 | ||
+ | fi | ||
+ | fi | ||
+ | |||
+ | export VBOX_USER_HOME=$MACHINEPATH | ||
+ | |||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | |||
+ | exit 0 | ||
+ | |||
+ | </ | ||
+ | |||
+ | Zum bequemen Starten kann man einen Desktop-Starter anlegen, z.B. für die VM " | ||
+ | |||
+ | <code text leoclient2-directstart.desktop> | ||
+ | [Desktop Entry] | ||
+ | Version=1.0 | ||
+ | Type=Application | ||
+ | Name=VirtualBox Direktstart | ||
+ | Comment=Starting Snapshots of VirtualBox | ||
+ | Comment[de]=Starten von VirtualBox Snapshots | ||
+ | Exec=/ | ||
+ | Icon=leovirtstarter2 | ||
+ | Categories=Graphics; | ||
+ | Categories=Emulator; | ||
+ | Terminal=false | ||
+ | </ | ||
+ | //Hinweis: Nach Anlegen dieser Datei muss diese ausführbar gesetzt werden.// | ||
+ | |||
+ | ===== Rechte an den virtuellen lokalen Maschinen ===== | ||
+ | |||
+ | Bei der Anmeldung eines Benutzers werden die Rechte an den virtuellen lokalen Maschinen so gesetzt, dass der Benutzer die Maschine starten kann, Logs anlegen kann und den aktiven Snapshot verändern kann. Legen Sie nachfolgendes Script ab unter **''/ | ||
+ | |||
+ | <code text / | ||
+ | #!/bin/bash | ||
+ | # | ||
+ | # Script / | ||
+ | # Setzt die Rechte für die lokalen VMs auf den aktuellen USER | ||
+ | # | ||
+ | # | ||
+ | |||
+ | etcpfad="/ | ||
+ | |||
+ | for file in " | ||
+ | vmpfad=`cat $file` | ||
+ | vmname=$(basename " | ||
+ | chmod ugo+rwt $vmpfad | ||
+ | chown -R $USER " | ||
+ | chown -R $USER " | ||
+ | chown $USER " | ||
+ | chown $USER " | ||
+ | chown $USER " | ||
+ | done | ||
+ | |||
+ | exit 0 | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Lokale VMs auf einer zusätzlichen Partition ablegen ===== | ||
+ | |||
+ | Standardmäßig werden die Dateien einer lokalen VM unter ''/ | ||
+ | |||
+ | |||
+ | **Beispiel: | ||
+ | < | ||
+ | # /etc/fstab: static file system information. | ||
+ | # | ||
+ | |||
+ | ... | ||
+ | |||
+ | / | ||
+ | |||
+ | </ | ||
+ | Danach als root an der Konsole ausführen, um die Partition zu mounten und das ganze dann noch mit " | ||
+ | # mount -a | ||
+ | # df -h | ||
+ | |||
+ | Nun ggf. die weggesicherten Dateien wieder nach ''/ | ||
+ | |||
+ | **Frage: Wann muss welche Partition geimaged werden?** | ||
+ | - Nach dem Anlegen einer neuen VM müssen beide Partitionen geimaged werden. Beim Anlegen einer neuen VM wird diese nämlich unter ''/ | ||
+ | - Nach dem Verändern einer VM muss nur die zusätzliche VM-Partition geimaged werden. | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | ====== Fehlersuche - Fehlerbehebung ====== | ||
+ | |||
+ | ===== Log-Datei ===== | ||
+ | |||
+ | Am Client findet man unter **''/ | ||
+ | |||
+ | |||
+ | ===== Endlosschleife bei leoclient2-base-snapshot-renew ===== | ||
+ | |||
+ | **Problem: | ||
+ | **Lösung: | ||
+ | |||
+ | ===== Snapshot passt nicht zur Basisfestplatte ===== | ||
+ | |||
+ | Nach einem "'' | ||
+ | In der Datei ''< | ||
+ | |||
+ | **Problem: | ||
+ | **Lösung: | ||
+ | |||
+ | ===== network.conf für lokalen Snapshot bereitstellen ===== | ||
+ | |||
+ | **Problem: | ||
+ | **Lösung: | ||
+ | Z.B. mit den voreingestellten Standard-Pfaden des Snapshots " | ||
+ | * lokaler Snapshot-Pfad: | ||
+ | * ergibt network.conf-Pfad: | ||
+ | |||
+ | |||
+ | ===== leovirtstarter2 zeigt/ | ||
+ | **Problem: | ||
+ | **Ursache 1:** Die VM wurde nicht ausgeschaltet sondern befindet sich in einem gespeicherten Zustand. Im Verzeichnis '' | ||
+ | **Lösung 1:** Den " | ||
+ | |||
+ | **Ursache 2:** Im Verzeichnis ''< | ||
+ | **Lösung 2:** Alle Dateien löschen bis auf den aktuellen Snapshot: '' |