Bug 28327 - Vereinfacher Client-Rollout
Vereinfacher Client-Rollout
Status: CLOSED FIXED
Product: Z_Univention Corporate Client (UCC)
Classification: Unclassified
Component: Client management
unspecified
Other Linux
: P5 enhancement
: UCC 1.0
Assigned To: Stefan Gohmann
Felix Botner
: interim-2
: 19048 (view as bug list)
Depends on:
Blocks: 29476
  Show dependency treegraph
 
Reported: 2012-08-27 13:58 CEST by Moritz Muehlenhoff
Modified: 2013-03-26 09:14 CET (History)
3 users (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): Release Goal
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Moritz Muehlenhoff univentionstaff 2012-08-27 13:58:59 CEST
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.
Comment 1 Moritz Muehlenhoff univentionstaff 2012-08-27 15:09:33 CEST
*** Bug 19048 has been marked as a duplicate of this bug. ***
Comment 2 Moritz Muehlenhoff univentionstaff 2012-08-27 15:11:17 CEST
Siehe auch Bug 23377
Comment 3 Moritz Muehlenhoff univentionstaff 2012-10-31 11:28:52 CET
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
Comment 4 Stefan Gohmann univentionstaff 2012-11-28 09:36:06 CET
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.
Comment 5 Stefan Gohmann univentionstaff 2012-11-28 10:01:35 CET
(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.
Comment 6 Stefan Gohmann univentionstaff 2012-11-30 06:23:10 CET
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.
Comment 7 Stefan Gohmann univentionstaff 2012-11-30 06:24:54 CET
(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.
Comment 8 Stefan Gohmann univentionstaff 2012-12-18 14:31:47 CET
Der UCC Client sollte nach der Installation oder dem Rollout seine Boot Variante wieder auf none zurücksetzen.
Comment 9 Stefan Gohmann univentionstaff 2012-12-20 15:17:10 CET
(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.
Comment 10 Stefan Gohmann univentionstaff 2012-12-21 06:35:12 CET
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.
Comment 11 Felix Botner univentionstaff 2013-01-04 09:41:48 CET
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.
Comment 12 Stefan Gohmann univentionstaff 2013-01-04 16:40:48 CET
(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.
Comment 13 Felix Botner univentionstaff 2013-01-07 10:16:04 CET
OK
Comment 14 Moritz Muehlenhoff univentionstaff 2013-03-26 09:14:20 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".