Bug 28972 - Image Update beim lokalen Boot
Image Update beim lokalen Boot
Status: CLOSED FIXED
Product: Z_Univention Corporate Client (UCC)
Classification: Unclassified
Component: Image management
unspecified
Other Linux
: P5 normal
: UCC 1.0
Assigned To: Stefan Gohmann
Felix Botner
: interim-3
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2012-10-30 10:55 CET by Stefan Gohmann
Modified: 2013-03-26 09:14 CET (History)
1 user (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Stefan Gohmann univentionstaff 2012-10-30 10:55:50 CET
Wenn ein Image lokal installiert ist und der Client von der lokalen Festplatte bootet wird das Image derzeit nicht aktualisiert. Dazu muss entweder das Verfahren aus TCS zurückportiert werden oder der UCC prüft in der initrd ein Policy Result.
Comment 1 Stefan Gohmann univentionstaff 2012-11-08 16:32:51 CET
Aktuelle Überlegung ist, dass wir in das vorhandene Image wechseln und dort die LDAP Suche ausführen.
Comment 2 Stefan Gohmann univentionstaff 2012-11-09 07:14:57 CET
Der Ablauf wäre dann wie folgt:

- Der UCC Client startet lokal in die initrd.

- Der UCC Client sucht sein lokales root Image und bindet dieses ein.

- Das Netzwerk muss konfiguriert werden. Es gäbe die Möglichkeit dies im chroot durchzuführen, das ist allerdings relativ aufwendig, da upstart usw. gestartet werden muss.

- Im chroot wird ein Programm ausgeführt, welches die LDAP Abfragen durchführt. Das Resultat ist ein temporäres Programm, welches aus der initrd ausgeführt werden kann. Ein temporäres Programm deshalb, weil so der Code an einer Stelle ist und das Parsen der Ausgabe in der initrd nicht notwendig ist.

- Es sollte eine Methode geben dem UCC Client auch eine statische IP Konfiguration zu geben. Das sollte entsprechend berücksichtigt werden. Bei der Netzwerkkonfiguration könnten einfach die UCR Variablen geprüft werden.
Comment 3 Stefan Gohmann univentionstaff 2012-11-09 22:30:56 CET
Eine erste Version ist jetzt umgesetzt:

(In reply to comment #2)
> Der Ablauf wäre dann wie folgt:
> 
> - Der UCC Client startet lokal in die initrd.
> 
> - Der UCC Client sucht sein lokales root Image und bindet dieses ein.
> 
> - Das Netzwerk muss konfiguriert werden. Es gäbe die Möglichkeit dies im chroot
> durchzuführen, das ist allerdings relativ aufwendig, da upstart usw. gestartet
> werden muss.

Hier werden jetzt die UCR Variablen im Image geprüft und ausgelesen und das Netzwerk wird entsprechend gestartet.

> - Im chroot wird ein Programm ausgeführt, welches die LDAP Abfragen durchführt.
> Das Resultat ist ein temporäres Programm, welches aus der initrd ausgeführt
> werden kann. Ein temporäres Programm deshalb, weil so der Code an einer Stelle
> ist und das Parsen der Ausgabe in der initrd nicht notwendig ist.

Hier wird das Tool  /usr/share/univention-ucc-initramfs/scripts/generate_upgrade_script aufgerufen, welches die LDAP Daten ausliest und ein Helper Skript generiert und von der initrd aufgerufen werden kann.

> - Es sollte eine Methode geben dem UCC Client auch eine statische IP
> Konfiguration zu geben. Das sollte entsprechend berücksichtigt werden. Bei der
> Netzwerkkonfiguration könnten einfach die UCR Variablen geprüft werden.

Ja, das wird gemacht.

Es fehlen noch:
- Tests
- Fehlerbehandlungen
Comment 4 Stefan Gohmann univentionstaff 2012-12-20 15:17:33 CET
In meinen Tests hat es soweit funktioniert.
Comment 5 Felix Botner univentionstaff 2013-01-03 09:42:39 CET
Update an sich klappt, jedoch bekommt man (ohne Anpassung von Konfig-Files auf dem lokal installiertem System) keine aktualisierbares System. 
Wenn ich den TC installiere und Join wird den UCC Startmode auf None gesetzt. Wenn man nun von lokal bootet, wird weiterhin die "ucc=none" Bootvariante aus der lokalen grub.cfg verwendet. Auch wenn ich im ldap für den Rechner ucc=update setzte, kommt er an diese Info ja (falls lokal gebootet) nicht mehr ran.
Comment 6 Stefan Gohmann univentionstaff 2013-01-03 09:53:17 CET
Es fehlt derzeit der Mount von /boot im Image. Wenn das eingebunden ist, dann funktioniert es.

Dennoch ist das Verhalten dann nicht konsequent, da es derzeit zwei Konfigurationsstellen gibt, zum einem im LDAP auf dem Tab des Rechners und zum anderen per UCR.
Comment 7 Stefan Gohmann univentionstaff 2013-01-03 10:01:17 CET
(In reply to comment #6)
> Es fehlt derzeit der Mount von /boot im Image. Wenn das eingebunden ist, dann
> funktioniert es.
> 
> Dennoch ist das Verhalten dann nicht konsequent, da es derzeit zwei
> Konfigurationsstellen gibt, zum einem im LDAP auf dem Tab des Rechners und zum
> anderen per UCR.

/boot sollte auf jeden Fall eingebunden werden.

Zusätzlich werden wir jetzt die UCR Variablen ignorieren und im LDAP prüfen, was für den Client eingestellt ist.
Comment 8 Felix Botner univentionstaff 2013-01-03 14:32:06 CET
Ich bin mit gerade nicht sicher, ob das System wirklich richtig aktualisiert wird. Folgendes Problem:

* TC installiert, gejoint, auf Update Konfiguriert
* TC ausgeschaltet und auf Festplatte boot gewechselt.
* Image auf dem Server angepasst (/opt/test erstellt)
* TC gestaret, das Update wurde eingspielt, jedoch ist das nun gestartete System
  noch das alte, /opt/test fehlt
* Neustart des TC, dann hat man das neue Image, jedoch fehlen die persistent-files
  (z.B. ist /etc/machine.secret)  nicht vorhanden
Comment 9 Felix Botner univentionstaff 2013-01-03 16:20:53 CET
(In reply to comment #8)
> Ich bin mit gerade nicht sicher, ob das System wirklich richtig aktualisiert
> wird. Folgendes Problem:
> 
> * TC installiert, gejoint, auf Update Konfiguriert
> * TC ausgeschaltet und auf Festplatte boot gewechselt.
> * Image auf dem Server angepasst (/opt/test erstellt)
> * TC gestaret, das Update wurde eingspielt, jedoch ist das nun gestartete
> System
>   noch das alte, /opt/test fehlt
> * Neustart des TC, dann hat man das neue Image, jedoch fehlen die
> persistent-files
>   (z.B. ist /etc/machine.secret)  nicht vorhanden

Das passiert auch, wenn über PXE ein Update eingespielt wird.
Comment 10 Stefan Gohmann univentionstaff 2013-01-05 21:14:23 CET
(In reply to comment #8)
> Ich bin mit gerade nicht sicher, ob das System wirklich richtig aktualisiert
> wird. Folgendes Problem:
> 
> * TC installiert, gejoint, auf Update Konfiguriert
> * TC ausgeschaltet und auf Festplatte boot gewechselt.
> * Image auf dem Server angepasst (/opt/test erstellt)
> * TC gestaret, das Update wurde eingspielt, jedoch ist das nun gestartete
> System
>   noch das alte, /opt/test fehlt
> * Neustart des TC, dann hat man das neue Image, jedoch fehlen die
> persistent-files
>   (z.B. ist /etc/machine.secret)  nicht vorhanden

Zum einen wurde beim umount in der initrd nicht -d verwendet:
 -d     In case the unmounted device was a loop device, also free this loop device

Das führte dazu, dass teilweise das Image nicht richtig aktualisiert wurde.

Weiter gab es diverse Probleme mit univention-ucc-sync-persistent-files, u.a. Bug #29936 und Bug #29934.
Comment 11 Felix Botner univentionstaff 2013-01-07 11:45:59 CET
OK, update funktioniert über Netz und beim Boot über die lokale Platte.

Ein kleiner Rechtschreibfehler hat sich noch in initramfs-tools/scripts/ucc eingeschlichen. Dort steht mehrfacj "harddsik".
Comment 12 Stefan Gohmann univentionstaff 2013-01-09 19:41:25 CET
(In reply to comment #11)
> Ein kleiner Rechtschreibfehler hat sich noch in initramfs-tools/scripts/ucc
> eingeschlichen. Dort steht mehrfacj "harddsik".

Wurde angepasst.
Comment 13 Felix Botner univentionstaff 2013-01-14 13:20:33 CET
(In reply to comment #12)
> (In reply to comment #11)
> > Ein kleiner Rechtschreibfehler hat sich noch in initramfs-tools/scripts/ucc
> > eingeschlichen. Dort steht mehrfacj "harddsik".
> 
> Wurde angepasst.

OK
Comment 14 Moritz Muehlenhoff univentionstaff 2013-03-26 09:14:14 CET
UCC 1.0 has been released: 
http://forum.univention.de/viewtopic.php?f=26&t=2417
http://forum.univention.de/viewtopic.php?f=54&t=2418

If this error occurs again, please use "Clone This Bug".