Univention Bugzilla – Bug 28327
Vereinfacher Client-Rollout
Last modified: 2013-03-26 09:14:20 CET
In Ticket 2010020310000417 wurde für einen Kunden ein Rolloutverfahren für Thin Clients implementiert: Der Thin Client bekommt von Ihrem DHCP-Server eine freie IP-Adresse sowie einen Server als Bootserver, der dann so konfiguriert ist, dass auch unbekannte Clients per PXE als Thin Client gebootet werden. Der Thin Client erkennt dann im PXE-Boot dass seine MAC-Adresse noch nicht im UCS Managementsystem bekannt ist. In diesem Moment wird ein Dialog eingeblendet, der nach folgenden Parametern fragt: - Name des Clients - Name des Users für den UCS-Zugriff - Passwort - Position im LDAP, an dem der Client angelegt werden soll Bis auf den Namen des Clients können alle Werte durch die Konfiguration (s.o.) vorgegeben werden. Der Client blendet alle Werte zur Bestätigung ein und legt nach dem OK das Objekt im UCS-Managementsystem an und startet den Client neu. Der Client muss dann wieder per PXE booten und "findet" sein Objekt im LDAP an der konfigurierten Position. Für diese sollten dann Richtlinien hinterlegt sein, die das Flashen der Clients aktivieren. Im zweiten PXE-Boot spielt der Client entsprechend das Flash-Image ein und ist anschließend einsatzbereit. Dieses muss nach UCC 1.0 übernommen werden und auf UCC angepasst werden.
*** Bug 19048 has been marked as a duplicate of this bug. ***
Siehe auch Bug 23377
Ein Problem beim Rollout per PXE ist, das für den initialen Rollout ein MAC-Objekt benötigt wird. Joint man dann später den Client mit einem zufällig erstellten Namen gibt es einen Fehler ala failed to create Client: Object exists: (mac) 11:22:33:44:55:66
Es gibt aus meiner Sicht die folgenden Optionen, entweder das System wurde vorab im Managementsystem angelegt oder nicht. Das kann dann kombiniert werden mit unterschiedlichen Bootverfahren (PXE, USB, DVD, Lokal usw.). Im Idealfall wird beim Joinen geprüft, ob die MAC Adresse bereits vorhanden ist. Wenn ja, dann wird der bereits vergeben Rechnername verwendet. Wenn nein, dann wird ein zufälliger Name verwendet. Der Prefix für die Namenssuche wird im Template gespeichert und kann dort entsprechend angepasst werden. Beim manuellen Joinen kann ein anderer Name forciert werden. Die Kennung sollte über die MAC Adresse laufen.
(In reply to comment #4) > Es gibt aus meiner Sicht die folgenden Optionen, entweder das System wurde > vorab im Managementsystem angelegt oder nicht. Das kann dann kombiniert werden > mit unterschiedlichen Bootverfahren (PXE, USB, DVD, Lokal usw.). > > Im Idealfall wird beim Joinen geprüft, ob die MAC Adresse bereits vorhanden > ist. Wenn ja, dann wird der bereits vergeben Rechnername verwendet. Wenn nein, > dann wird ein zufälliger Name verwendet. Der Prefix für die Namenssuche wird im > Template gespeichert und kann dort entsprechend angepasst werden. > > Beim manuellen Joinen kann ein anderer Name forciert werden. > > Die Kennung sollte über die MAC Adresse laufen. Wir verzichten auf die automatische Namensgenerierung. Wenn der Name unbekannt ist, so sollte nach dem Namen gefragt werden. Wenn der anonyme LDAP Zugriff erlaubt ist, dass wäre ein vollständig automatischer Join gut, beispielsweise durch die Verwendung des Rechnernamens als Passwort.
Der Autojoin könnte folgendermaßen implementiert werden: - Zunächst muss das UCC Client Objekt angelegt werden - Auf dem Tab Image muss als Boot Variante "Rollout (automatic)" gewählt werden. Dadurch wird das Passwort des Accounts mit dem Rechnernamen initialisiert. Zusätzlich wird die LDAP-DN des Accounts in die PXE Konfiguration geschrieben - In der initrd wird das Verfahren erkannt und der Join wird entsprechend als UCC Client durchgeführt. Es wäre möglich dies zum Standard-Rollout-Verfahren zu machen, allerdings könnte es problematisch werden, wenn wir irgendwann mehr Join Skripte haben, die mehr Berechtigungen im LDAP benötigen, deshalb eine zusätzliche Boot-Variante. Ggf. müssten die LDAP ACLs noch so angepasst werden, dass der UCC Client sein eigenes Objekt ändern darf. Hier reicht, zumindest im Moment, der Zugriff auf die Passwort Attribute.
(In reply to comment #6) > Der Autojoin könnte folgendermaßen implementiert werden: > > - Zunächst muss das UCC Client Objekt angelegt werden > > - Auf dem Tab Image muss als Boot Variante "Rollout (automatic)" gewählt > werden. Dadurch wird das Passwort des Accounts mit dem Rechnernamen > initialisiert. Zusätzlich wird die LDAP-DN des Accounts in die PXE > Konfiguration geschrieben > > - In der initrd wird das Verfahren erkannt und der Join wird entsprechend als > UCC Client durchgeführt. > > Es wäre möglich dies zum Standard-Rollout-Verfahren zu machen, allerdings > könnte es problematisch werden, wenn wir irgendwann mehr Join Skripte haben, > die mehr Berechtigungen im LDAP benötigen, deshalb eine zusätzliche > Boot-Variante. > > Ggf. müssten die LDAP ACLs noch so angepasst werden, dass der UCC Client sein > eigenes Objekt ändern darf. Hier reicht, zumindest im Moment, der Zugriff auf > die Passwort Attribute. Das ist ausgelagert an Bug #29476.
Der UCC Client sollte nach der Installation oder dem Rollout seine Boot Variante wieder auf none zurücksetzen.
(In reply to comment #8) > Der UCC Client sollte nach der Installation oder dem Rollout seine Boot > Variante wieder auf none zurücksetzen. Das ist jetzt umgesetzt.
Ich habe noch ein Joinskript (51univention-ucc-initramfs.inst) hinzugefügt, damit das Flag auch zurückgesetzt wird, wenn die Installation erfolgreich war, aber der Admin sich beim Rollout vertippt. Dann wird es jetzt durch das Join Skript zurückgesetzt.
QUESTION: Das set_boot_variant bei Boot Variante installation in initramfs-tools/scripts/ucc könnte noch raus, da das System zu diesem Zeitpunkt immer ungejoint ist und noch nicht gejoint wurde. Sonst OK. Bei rollout wird der Client aktualisiert bzw. neu installiert. Danach wird der Client gejoint. Gibt es einen passenden Rechneraccount (MAC), wird dieser verwendet. Nach dem Rollout und beim Join wird die Boot Variante auf none gesetzt.
(In reply to comment #11) > QUESTION: > > Das set_boot_variant bei Boot Variante installation in > initramfs-tools/scripts/ucc könnte noch raus, da das System zu diesem Zeitpunkt > immer ungejoint ist und noch nicht gejoint wurde. Wurde jetzt entfernt.
OK
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".