
Rainer:
-----
1) STATT in snapshot-store/standard das gezippte Snapshots/{...}.vdi zu
kopieren, wird das NICHT gezippte Snapshots/{...}.vdi hineinkopiert

2) Um snapshot-store/standard/{...}.vdi zippen wird
    leovirtstarter2 --prepare-remote-vm MASCHINENNAME
Außerdem werden dort filsize.vdi und filesize.vdi.zipped mit dem
korrekten Inhalt erzeugt.

Ebenso:
 leoclient2-base-snapshot-renew
 leoclient2-vm-move
----


%selected nach %all vars verschieben


get_local_vm_path ist nicht mehr erforderlich -> %all_vars

was ist besser: bei einer nur remoten Maschine den lokalen pfad in
local -> path (wie bei lokaler maschine)
oder
local -> local_path (andere name)


what if searchdir->local are more than one (local vms in different places)?


NEXT: 
Before --set-permissions:
  save rsync paths (rsync_root -> default -> source 
                    rsync_root -> default -> target)
sync them for ALL machines with --set-permissions
-> always sync from remote to local (server wins)
rsync test/ test2/


2) rsync --ignore-existing -av --exclude winXP.vdi --exclude snapshot-store/base/winXP.vdi.zip --exclude Snapshots/{8c816439-1e6e-430f-9865-db7a2a96206f}.vdi --exclude snapshot-store/*  /media/leoclient-server/winXP/ /virtual/leoclient2-vm/winXP/

Setting path for selected vm: 
put this into the all_vars hash 
  vms->name-> selected -> ...

strip down printout comments
strip down log file



DONE

renamed get_vbox_uuid to save_vbox_uuid

%vm_remote  $all_vars{'vms'}{$machine}{'remote'}{'path'}
%vm_local
%vm
%vm_remote_local   $all_vars{'vms'}{$machine}{'local'}{'path'}
@vm                @{ $all_vars{'vms_ordered'}{'all'}
@vm_local          @{ $all_vars{'vms_ordered'}{'local'}      
@vm_remote         @{ $all_vars{'vms_ordered'}{'remote'}

vars to remove (commented vars, not used anymore)
$search_dir_local -> serverdirs -> local
snapshot_search_dirs_remote
snapshot_search_dirs_local
snapshot_search_dirs
shared_home_abs
vm_uuid (not necessary)

# check if the following works before removing lists
@cache_dirs
@cache_dirs_size



rsync commands throw errors, because snapshot-store and defaults and baseimage is not writeable
--> fix this as root in --set-permissions
    rsync from server (snapshot-store, defaults, baseimage)
--> remove $rsync_command1 and $rsync_command2


leoclient2 und leoclient Pakete sollen nicht gemischt werden können
(Paketsystem soll das verhindern)

logfile von run-vm-splitter soll abs Pfad anzeigen, von dem File, das er überwacht.

sudo part:
- make sure that the dir in that a remote machine will be synced is writeable for the user (777)


sudoers: this works (on a normal ubuntu 14.04)

1) sudo cp sudoers/leoclient2-sudoers  /usr/sbin/leoclient2-sudoers
2) sudo chmod +x /usr/sbin/leoclient2-sudoers
3) sudo visudo 
   add the following line:
     %user ALL=NOPASSWD: /usr/sbin/leoclient2-sudoers
   save the file
4) as a normal user:
    sudo /usr/sbin/leoclient2-sudoers
   - shows that the user is root
   - no password required
   - chmod works

? ist die Reihenfolge wichtig?
? kann das nicht in /etc/sudoers.d/leoclient2




Bugs Schule/Rainer:

Todo:
----------------------------------------------------------------------

bei langem rsync hinundhergehender Fortschrittsbalken anzeigen?
 - nicht erforderlich

Bugs important
------------------------------------------------
????
Beide zeigen die Größe von {7491a86a-8ef3-4022-87d8-ebe88df86dec}.vdi.zip an
snapshot-store/standard/filesize.vdi.zipped
-> FALSCH: snapshot-store/standard/filesize.vdi


Install snapshot and vms from stick


Remote und lokale snapshots 
- remote gucken, lokal gucken nach snapshots
  nur 1x anzeigen mit Hinweis (lokal).
  beim starten syncen und lokales startetn



image.conf in den snapshots auch umsetzen wie be vm's



VEU:
wenn eine Maschine gestartet wird und man geht in virtualbox und zum 
standard-snapshot zurück, dann werden die shared folders nicht gepatched



Bugs nice to have
----------------------------------------------------------------------


gezippter standard snapshot aus rsync entfernen, 
und erst bei VM standard booten holen(wird dann aber gecached und entpackt)


vbox läuft schon, .... früher aussteigen, 
evtl. nur vbox öffnen (keine vm starten)


#wenn nix lokales einer remoten maschine vorhanden
#dann gibts keinen sinn "wie vorgefunden" anzugeben -> aus startmenü entfernen
#(wie vorgefunden tut, ist identisch aber identisch zu )
---> wenn Snapshots{xx}.vdi fehlt, dann "wie vorgefunden" ausblenden




Wenn eine Netzwerkkarte fehlt (ausfall) und deshalb das Netz
dervirtuellen Maschine nicht konfiguriert werden kann:
Sinnvolle Fehlermeldung absetzten (zenity) und trotzdem booten.



Abgleichen/Überlegen
----------------------------------------------------------------------


ältere Versionen haben win7/snapshot-store/standard/snapshot.zip angelegt
falls vorhanden: Warnung ausgeben diese umzubenennen in 
{uuid}, ....

- cache obligatorisch oder freiwillig
  IDEE: wenn kein cahe, dann in den snapshot-store



Sonstiges:
----------------------------------------------------------------------

SERVER mit Virtualbox verwalten

server headless autostart
 - show headless command
 - Datei autostart.conf
   COMMAND=EXPORT ....VBoxManage startvm ubuntu-server --type headless
   SHADED FOLDER
Script, dass beim booten alle so markierten VM's startet
Oder das hier benutzen:
http://vboxtool.sourceforge.net/

server netzwerkconfig
if-then-else-configuration:
wenn die Netzwerkkarten (Hardware) eine bestimmte MAC haben,
   dann -> so konfigurieren: ... nutze diese NIC (bridge, ...)
   sonst so konfigirieren: ... erstelle virtuelle NIC ins testenetz xyz

Beispiele:

A) virtuelle Maschine macht dhcp, der soll aber nicht ins schulnetz gehen, 
   sondern gebridged auf eine NIC mit der MAC xyz (falls vorhanden)
   
   # Echter Server (mit ZusatzNIC) 
   falls auf host xyz, UND MAC klm vorhanden, bridge auf diese

   # Testrechner
   falls auf host xyz2 dann mache Rechnerinternes Netz mit name abc 
   und mache dahinein dhcp
   
   Netzname sollte mit imagename korrespondieren



--info: Für alle SERVERDIRS die remoten Maschinen nacheinander auflisten
        Beim booten/auswählen das SERVERDIR anzeigen


lokale maschinen (vm) verbergen, wenn sie nicht gestartet werden dürfen
oder sind die IMMER zugreifbar?
WEITER: funktionen read_access_vm und access_vm
nutzen um access.conf auszulesen/anzuwenden

Welche Bedingung muss gelten, dass verborgen wird:
wenn die win7/win7.vdi existiert, dann auflisten


Option -i sollte noch den Zugriff angeben

vor dem starten einer remoten machine:
   - rsync --ignore-existing nach lokal (ohne basis image und snapshots)
   - dann basis-image mit gui fortschritt zeigen
   - wohin soll kopiert werden?
     (lokale maschinen abklappern, wo gibts platz
      image.conf: LOCALPATH)


displayauflösung und skalierung einstellbar machen


Problem:

CPU-Begrenzung ist evtl. manchmal niedrig
 - soll das auf einen Festgelegten Wert gepached weden?

Beim bridgen: evtl. adaptertyp festlegen/Welcher/Wie
Am BSZ: --nictype<1-N> Am79C973
Evtl. Option vorsehen in network.conf


default.conf einführen, ähnlich wie cache.conf 
  - Variable conf_defaults existiert schon


- warum tut 
  sudo leoclient2-set-permissions 
  nicht mehr passwortlos?
  Zusätzlich 011... ab Paket 0.1.1-2
- wozu der link /usr/bin/leovirtstarter-client

- Drucken: ist ausdruck-winxp.pdf im windows eingestellt/änderbar
  mehrere Dateien konfiguruerbar machen, alle unter hochzählen in den spooler

- run-vm-printer2-spooler/splitter wird nicht gestartet

- if VirtualBox.xml is not writeable, call sodoers script






Netzwer-Config:

> Angehängt die network.conf-Datei, die auf der /virtual-Partition liegt.
> Kurze Erklärung:
> f0425p08;1;bridge;08de80b1580d;auto
> 1. Feld: Hostname
> 2. Feld: Welche Netzwerkkarte in VortualBox soll benutzte werden, es
> gibt 4, also mögliche Wert: 1-4
> 3. Feld: Wie soll die Netzwerkkarte verbunden werden (VirtualBox kennt:
> none|null|nat|bridged|intnet|hostonly|generic|natnetwork )
> 4. Feld: Die MAC-Adresse, die die virtuelle Netzwerkkarte erhalten soll
> (für den DHCP-Server)

Wieso kann diese MAC nicht generiert werden? 
z.B. ersetze erste Stelle mit a

> 5. Feld: Mit welcher Netzwerkkarte/welchem Netzwerkname soll verbinden
> werden. Netzwerkkarte: eth0, eth1, ... - Netzwerkname: "EinName" - oder
> "auto". Bei "auto" soll jeweils mit der Karte verbunden werden, die
> nicht im päd. Netz hängt.
>
> Außerdem die VBoxManage-Befehle, wie man das einträgt:
> Für "f0425p08;1;bridge;08de80b1580d;auto" muss man wegen "auto" zunächst
> herausfinden mit welchem eth das päd. Netz verbunden ist

Wie findet man das raus?
 
> - ich nehme an
> es wäre eth1, dann ergibt sich folgender Befehl:
> # VBoxManage modifyvm winXP --nic1 bridged --bridgeadapter1 eth0
> --macaddress1 08de80b1580d
? bridge oder bridged?

>
> Für "f0425p08;2;nat;08de80b15811;default" ergibt sich:
> # VBoxManage modifyvm winXP --nic2 nat --natnet2 default --macaddress2
> 08de80b15811
>


> Übrigens funktioniert leoclient2-vm-printer nicht (sucht nach
> Konfigurationsdatei ohne der 2 im Namen, aber auch mit der koorigierten
> 2 hat es nicht funktioniert. Ich hab jetzt leoclient-vm-printer (1)
> installiert - der funktioniert.

Pfad ist angepasst, aber noch nicht getestestet

>
> Außerdem muss das leoclient2-set-permissions-Script beim Anmelden mit
> root-Rechten laufen. Ich habe daher das Script angepasst und als
> 001-leoclient-set-permissions in das Verzeichnis installer-scripts
> abgelegt. Es muss beim Installieren in die Verzeichnisse
> /etc/linuxmuster-client/post-mount und
> /etc/linuxmuster-client/pre-umount kopiert werden.