Univention Bugzilla – Bug 20096
univention-thin-client-ucr ersetzen
Last modified: 2010-11-10 19:44:10 CET
univention-thin-client-ucr ist i.M. ein Skripte, dass die Datei /var/lib/univention-client-root/etc/univention/univention-thin-client-ucr mit UCR Statements befüllt. -> univention-thin-client-ucr set aa=bb -> univention-thin-client-ucr set bb=aa -> cat /var/lib/univention-client-root/etc/univention/univention-thin-client-ucr ucr set aa="bb" ucr set bb="aa" Dann wird diese Datei beim Boot des TC über ein Init-Skript ausgeführt damit die Variablen für den TC zur Verfügung stehen. Dieses Verfahren ist unschön, da bemi Boot dann möglicherweise viele UCR Statements ausgeführt werden müssen, was die Bootzeit erhöht. Besser wäre es eine eigene base.conf über UCR zu befüllen und diese Datei beim Boot des TC's an die original base.conf anzuhängen. BASECONF=/var/lib/univention-client-root/etc/univention/base.ucr.conf ucr set ...
Fixed in Scope im Paket univention-thin-client-basesystem
Man kann damit im Moment nur Variablen setzten auf die vorher ein "unset" gemacht wurde, Ändern geht nicht: # univention-thin-client-ucr unset thinclient/rollout/ldap/binduid Unsetting thinclient/rollout/ldap/binduid # univention-thin-client-ucr set thinclient/rollout/ldap/binduid=importer Create thinclient/rollout/ldap/binduid # univention-thin-client-ucr set thinclient/rollout/ldap/binduid=Administrator Setting thinclient/rollout/ldap/binduid Traceback (most recent call last): File "/usr/sbin/univention-config-registry", line 40, in ? ub.main(sys.argv[1:]) File "/usr/lib/python2.4/site-packages/univention/config_registry.py", line 1444, in main handlers[ action ][ 0 ]( args, cmd_opts ) File "/usr/lib/python2.4/site-packages/univention/config_registry.py", line 881, in handler_set print 'Warning: %s is overridden by scope "%s"' % (key, SCOPE[k[0]]) TypeError: list indices must be integers
Die Anpassungen an etc/init.d/thin-client-base und das Tool univention-thin-client-ucr (u-t-c-basesystem) müssen übernommen werden. Außerdem sollte univention-thin-client-ucr nochmal überarbeitet werden, i.M. könne gesetzte Variablen nicht (ohne vorheriges Löschen) wieder gesetzt werden können.
univention-config-registry wurde von 2.4-0 in den Scope geforkt, um die Änderung aus Bug#20260 bereits für UCS TCS mit 2.4-0 zu bekommen (nicht erst mit 2.4-1). Die Versionsnummer von univention-config-registry in UCS TCS 3.1 ist größer als in UCS 2.4-0 aber kleine als UCS 2.4-1, damit das Update auf 2.4-1 das geforkte Paket wieder überschreibt. In univention-thin-client-basesystem wurde das Tool univention-thin-client-ucr hinzugefügt. Dieses verwendet ucr aber mit der über UNIVENTION_BASECONF angepassten base.conf /var/lib/univention-client-root/etc/univention/base-thin-client.conf. Alle Änderungen gehen also dorthin. Das Tool wird auf dem Server, der die TC Umgebung per NFS anbietet, verwendet um UCR Variablen für TC's zu definieren. Über etc/init.d/thin-client-base (tc Umgebung) wird diese Datei dann beim Booten der TC's an die normale base.conf angehangen. Danach sollte es die Variable auf dem TC geben. ACHTUNG! Es wird kein commit auf die über univention-thin-client-ucr gesetzten Variablen gemacht. univention-config-registry und univention-thin-client-basesystem im Scope uts für 2.4 gebaut. Changelog angepasst
Funktioniert: Auf dem Bootserver wurde die Variable gesetzt: univention-thin-client-ucr set hans=wurst Der Eintrag findet sich in /var/lib/univention-client-root/etc/univention/base-thin-client.conf wieder. Auf dem per PXE gebooteten Thin Client findet sich der Wert ebenfalls wieder und kann verändert und gelöscht werden: root@TC4:~# ucr get hans wurst root@TC4:~# ucr set hans=maulwurf Setting hans root@TC4:~# ucr get hans maulwurf root@TC4:~# ucr unset hans Unsetting hans root@TC4:~# ucr get hans Eine über die UCR-Richtlinie gesetzte Variable hat ausserdem Priorität. Ich habe über eine Richtlinie für den TC hans=glueck gesetzt: root@TC4:~# ucr get hans glueck
UCS TCS 3.1 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer neueren Version von UCS TCS erneut auftreten, so sollte der Bug dupliziert werden: "Clone This Bug".