Univention Bugzilla – Bug 22904
System Setup für UMC
Last modified: 2023-02-03 13:07:48 CET
Univention System Setup soll in UMC integriert werden
An diesem Bug sollen die grundsätzlichen Überlegungen zur Migration von ncurses zu UMC gemacht und implementiert werden.
In diesem Zusammenhang wurden folgende neuen Bugs angelegt: * Starten des Systems in eine X-Session mit Firefox → Bug 23869 * Netzwerk-Zugriff für das Setup von außen erlauben → Bug 23870 * UMC-Zugriff ohne Login → Bug 23872
Die grundsätzliche Struktur und das Framework stehen soweit. Das Python-Backend schreibt alle Werte (im Wesentlichen UCR-Variablen), die sich geändert haben, in eine Profil-Datei (/var/cache/univention-system-setup/profile) mit Key-Value-Einträgen, für die dann die Setup-Skripte aufgerufen werden (univention-system-setup). Jedes Setup-Skript liest diese Datei ein und wendet die Änderungen an, sofern Variablen gespeichert wurden, die das Skript betreffen.
Eine erste Version des Paketes wurde eingecheckt. Folgende Bugs wurden angelegt, um die Setup-Skripte an UCS 3.0 anzupassen: Bug 23993, Bug 23997
Folgende Dinge sollten jetzt noch implementiert werden: * Wenn das System bereits gejoint wurde, dann darf Rechnername / FQDN, Windows Domäne und LDAP Basis nicht geändert werden können. Diese Einschränkung gilt nicht für das Basissystem. * Wenn das System noch nicht gejoint wurde, dann sollen nicht die System Setup Skripte aufgerufen werden, sondern univention-join bzw. univention-run-join-scripts (DC Master). Wenn auf dem DC Master univention-run-join-scripts aufgerufen wird, dann sollte vorher die Datei /var/univention-join/joined angelegt werden. * Auf nicht DC Master und Bassisystem Systemen sollten vom Benutzer Benutzername und Passwort für das Joinen abgefragt werden und an die Join-Skripte übergeben werden. * Wenn das System bereits gejoint wurde, dann werden, wie bisher auch, die System Setup Skripte aufgerufen. Wenn die Datei /var/univention-join/joined vorhanden ist, dann ist das System bereits gejoint.
(In reply to comment #5) > Folgende Dinge sollten jetzt noch implementiert werden: > > * Wenn das System bereits gejoint wurde, dann darf Rechnername / FQDN, Windows > Domäne und LDAP Basis nicht geändert werden können. Diese Einschränkung gilt > nicht für das Basissystem. → Das wurde entsprechend geändert. > * Wenn das System noch nicht gejoint wurde, dann sollen nicht die System Setup > Skripte aufgerufen werden, sondern univention-join bzw. > univention-run-join-scripts (DC Master). Wenn auf dem DC Master > univention-run-join-scripts aufgerufen wird, dann sollte vorher die Datei > /var/univention-join/joined angelegt werden. → Das funktioniert jetzt wie folgt: * Auf einem Basissystem laufen die normalen Setup-Skripte immer durch ("Join" gilt für ihn nicht) * Auf den anderen Systemen wird das Skript setup-join.sh statt der Setup-Skripte aufgerufen, wenn sie nicht gejoint sind * Sind die Systeme (!= Basissystem) gejoint, werden die Setup-Skripte aufgerufen. Dabei werden die die Skripte für Rechner-/Domainnamen, Windows-Domäne und LDAP-Basis für diese Systeme ignoriert (sie werden nur bei Basissystemen aufgerufen). > * Auf nicht DC Master und Bassisystem Systemen sollten vom Benutzer > Benutzername und Passwort für das Joinen abgefragt werden und an die > Join-Skripte übergeben werden. → wurde hinzugefügt (sollte funktionieren, wurde noch nicht fertig getestet). > * Wenn das System bereits gejoint wurde, dann werden, wie bisher auch, die > System Setup Skripte aufgerufen. → (siehe oben) > Wenn die Datei /var/univention-join/joined vorhanden ist, dann ist das System > bereits gejoint. → Der Joinstatus wird anhand dieser Datei ermittelt → Der Appliancemode wird daran erkannt, dass der Benutzer __systemsetup__ angemeldet ist (siehe Bug 23872) Ein Punkt ist noch offen: Derzeit ist es möglich bei gestartetem System-Setup während des Bootvorgangs (also Appliance-Modus), sich an UMC auch von außen anzumelden. Wird allerdings System-Setup nicht von lokal aus aufgerufen, wird auch die Firefox-Instanz nicht beendet. Das wiederum kann Probleme mit der UMC-Anmeldung zur Folge haben, da ggf. SSL-Zertifikate neu generiert wurden und UMC-Server, UMC-Web-Server und ggf. Apache neu gestartet werden müssen/sollten. Das wird im Appliance-Szenario über die Boot-Skripte sichergestellt (siehe Bug 23869).
Weiterer offener Punkt: * Die angelegte Profildatei sollte gelöscht werden
(In reply to comment #7) > Weiterer offener Punkt: > > * Die angelegte Profildatei sollte gelöscht werden Das Passwort wird jetzt aus dem System Setup Skript selbst gelöscht: usr/lib/univention-system-setup/scripts/basis/18root_password Das hat den Vorteil, dass der Support noch an die restlichen Daten kommen kann.
Weitere offene Punkte: * FQDN, LDAP Basis, Windows Domain und root Passwort sollten immer gesetzt werden. * LDAP Basis und Windows Domain sollten automatisch ausgefüllt werden, wenn FQDN ausgefüllt wird. * Im ungejointen Zustand sollten die Felder (FQDN, LDAP Basis, Windows Domain, Passwort) leer sein.
> Wenn die Änderungen durchgelaufen sind und man die entsprechende > Erfolgsmeldung quittiert hat, weiss man nicht, wie man wieder aus dem Modul > kommt. Ein Klick auf "Beenden" führt zur Fehlermeldung, dass keine > Änderungen übernommen wurden. Man kann dann ok sagen und ist wieder im > Modul. Einziger Weg ist,das Modul zu schliessen, das ist aber nicht > intuitiv. Meiner Ansicht nach müsste bei Beenden folgende Meldung kommen: > > "Es wurden keine Änderungen an der Systemkonfiguration vorgenommen." Und > dann zur Auswahl: "Zurück" und "System Setup beenden" (Default wäre des > zweite) Die selben Auswahlmöglichkeiten müsste man auch nach erfolgreichem > Durchlauf von System-Setup haben.
Created attachment 3778 [details] setup.log Ich habe auf einem DC Master per System Setup den Printserver nachinstalliert. Scheinbar wurde während der Installation UMC neu gestartet. Im Firefox habe ich auch mehrere Minuten, nachdem die Installation durch war, noch die Ladeanimation gesehen. Irgendwann (ca. 5 Minuten) wurde mir in UMC der folgende Hinweis angezeigt: An unknown error with status code 502 occurred while connecting to the server, please try again later
(In reply to comment #6) > ... > Ein Punkt ist noch offen: Derzeit ist es möglich bei gestartetem System-Setup > während des Bootvorgangs (also Appliance-Modus), sich an UMC auch von außen > anzumelden. Wird allerdings System-Setup nicht von lokal aus aufgerufen, wird > auch die Firefox-Instanz nicht beendet. Das wiederum kann Probleme mit der > UMC-Anmeldung zur Folge haben, da ggf. SSL-Zertifikate neu generiert wurden und > UMC-Server, UMC-Web-Server und ggf. Apache neu gestartet werden müssen/sollten. > Das wird im Appliance-Szenario über die Boot-Skripte sichergestellt (siehe Bug > 23869). → Das ist erstmal so in Ordnung (In reply to comment #10) > > Wenn die Änderungen durchgelaufen sind und man die entsprechende > > Erfolgsmeldung quittiert hat, weiss man nicht, wie man wieder aus dem Modul > > kommt. Ein Klick auf "Beenden" führt zur Fehlermeldung, dass keine > > Änderungen übernommen wurden. Man kann dann ok sagen und ist wieder im > > Modul. Einziger Weg ist,das Modul zu schliessen, das ist aber nicht > > intuitiv. Meiner Ansicht nach müsste bei Beenden folgende Meldung kommen: > > > > "Es wurden keine Änderungen an der Systemkonfiguration vorgenommen." Und > > dann zur Auswahl: "Zurück" und "System Setup beenden" (Default wäre des > > zweite) Die selben Auswahlmöglichkeiten müsste man auch nach erfolgreichem > > Durchlauf von System-Setup haben. → Das Problem wurde behoben. Es gibt hier zwei Fälle für das Appliance-Szenario zubeachten: (a) Das System ist bereits gejoint → hier gibt es jetzt einen Hinweis, dass keine Änderungen vorgenommen wurden und das System bei Bestätigung weiter Booten wird. (b) Das System ist noch nicht gejoint → in diesem Fall müssen FQDN etc. angegeben werden (siehe Comment #9) (In reply to comment #11) > Created an attachment (id=3778) [details] > setup.log > > Ich habe auf einem DC Master per System Setup den Printserver nachinstalliert. > Scheinbar wurde während der Installation UMC neu gestartet. > > Im Firefox habe ich auch mehrere Minuten, nachdem die Installation durch war, > noch die Ladeanimation gesehen. Irgendwann (ca. 5 Minuten) wurde mir in UMC der > folgende Hinweis angezeigt: > > An unknown error with status code 502 occurred while connecting to the server, > please try again later → Dies sollte im Zuge von Bug 24751 jetzt auch funktionieren. Im schlimmsten Fall muss sich der Benutzer neu einloggen (da durch den Neustart des Web-Servers die Session nicht mehr gültig ist). Long-Polling stellt dann die Verbindung wieder her.
Zur Information: Im Frontend wird der Appliance-Modus daran erkannt, dass der Benutzer als __systemsetup__ eingeloggt ist.
(In reply to comment #13) > Zur Information: > > Im Frontend wird der Appliance-Modus daran erkannt, dass der Benutzer als > __systemsetup__ eingeloggt ist. Dies gilt auch für das Backend-Modul.
(In reply to comment #12) > → Dies sollte im Zuge von Bug 24751 jetzt auch funktionieren. Im schlimmsten > Fall muss sich der Benutzer neu einloggen (da durch den Neustart des > Web-Servers die Session nicht mehr gültig ist). Long-Polling stellt dann die > Verbindung wieder her. set-apache-permissions aus univention-updater wurde in enable-apache2-umc umbenannt. Zusätzlich wurde ein disable-apache2-umc eingeführt. Durch das Ausführen des Skriptes /usr/share/univention-updater/disable-apache2-umc kann jetzt ein Neustart von Apache2/UMC/UMC-Webserver verhindert werden. Von den jeweiligen Binaries wird dafür das Executable-Bit entfernt. Zusätzlich wird dies per dpkg-statoverride gesetzt, so dass dies auch ein Paketupdate überlebt. Über /usr/share/univention-updater/enable-apache2-umc kann diese Änderung wieder rückgängig gemacht werden. Achtung: beim Rückgängigmachen werden die drei Dienste neu gestartet! Beim Booten wird wie bisher enable-apache2-umc aufgerufen, um die Berechtigungen automatisch zu korrigieren.
(In reply to comment #9) > Weitere offene Punkte: > > * FQDN, LDAP Basis, Windows Domain und root Passwort sollten immer gesetzt > werden. > > * LDAP Basis und Windows Domain sollten automatisch ausgefüllt werden, wenn > FQDN ausgefüllt wird. > > * Im ungejointen Zustand sollten die Felder (FQDN, LDAP Basis, Windows Domain, > Passwort) leer sein. Das wurde angepasst. Dabei ist das Unterscheidungskriterion wie folgt: (a) Wenn sich das Modul im Appliance-Modus befindet und das System noch nicht gejoint ist (und die Systemrolle != basesystem ist): → Die vier Felder sind "required" (auch mit "(*)" markiert) → Die vier Felder sind leer → LDAP-Basis und Windows Domain werden automatisch aus dem FQDN berechnet (b) Ansonsten sind FQDN, LDAP-Basis und Windows-Domain auf "disabled" gesetzt und mit ihrem entsprechenden Wert ausgefüllt. Das Passwort kann gesetzt werden, alle vier Felder sind _nicht_ auf "required" gesetzt. univention-system-setup (5.0.65-1) unstable; urgency=low . * allow Host=* for user __systemsetup__ (Bug #23870) * UMC: adjusted setting of disabled/required/value properties for the fields FQDN, LDAP base, Windows domain, root password in appliance mode (Bug #22904) univention-management-console-frontend (1.0.222-1) unstable; urgency=low . * PasswordInputBox: enabled dynamic setting of required/label * LabelPane: watch changes on the property required (Bug #22883)
(In reply to comment #15) > Über /usr/share/univention-updater/enable-apache2-umc kann diese Änderung > wieder rückgängig gemacht werden. > Achtung: beim Rückgängigmachen werden die drei Dienste neu gestartet! Wird der Parameter --no-restart an enable-apache2-umc übergeben, werden die Dienste nicht neu gestartet.
(In reply to comment #17) > (In reply to comment #15) > > Über /usr/share/univention-updater/enable-apache2-umc kann diese Änderung > > wieder rückgängig gemacht werden. > > Achtung: beim Rückgängigmachen werden die drei Dienste neu gestartet! > > Wird der Parameter --no-restart an enable-apache2-umc übergeben, werden die > Dienste nicht neu gestartet. Das Skript wird nun verwendet, um sicherzustellen, das die Dienste nicht neu gestartet werden. univention-system-setup (5.0.66-1) unstable; urgency=low . * UMC: replace os.system() calls with subprocess.call() * UMC: use the scripts {disable,enable}-apache2-umc to make sure the UMC servers as well as apache are not restarted during execution of any setup scripts (Bug #22904)
(In reply to comment #14) > (In reply to comment #13) > > Zur Information: > > > > Im Frontend wird der Appliance-Modus daran erkannt, dass der Benutzer als > > __systemsetup__ eingeloggt ist. > > Dies gilt auch für das Backend-Modul. Das muss noch einmal überarbeitet werden.
Created attachment 3881 [details] system-setup-matrix (In reply to comment #19) > Das muss noch einmal überarbeitet werden. Anbei die Matrix für alle Möglichkeiten
Created attachment 3882 [details] system-setup-matrix updated matrix
Die GUI wurde bzgl. der angegebenen Matrix angepasst und sollte sich nun entsprechende verhalten. Es wurde zudem noch ein weiterer Fehler behoben, der den Dialog zum Fortfahren mit dem Bootprozess verhinderte. Damit kann dieser Bug zu. univention-system-setup (5.0.69-1) unstable; urgency=low * UMC: fixed scoping error (Bug #22904) univention-system-setup (5.0.68-1) unstable; urgency=low * UMC: updated the GUI dependencies (Bug #22904)
Folgendens Verhalten fehlt derzeit noch: * UMC-Server und UMC-Web-Server für ein gejointes System nach Ändern der Netzwerkeinstellungen (Änderungen virtueller Geräte können ignoriert werden) neustarten. * Zusätzlich einen Hinweis ausgeben, dass Dienste neu gestartet werden können, wenn Netzwerkeinstellungen und Softwarepakete geändert werden
Created attachment 3894 [details] system-setup-matrix Aktualisierung der Matrix ? Hinweis beim Installieren von Samba3/4 auf einem Backup/Slave (siehe Bug 22905)
Created attachment 3895 [details] system-setup-matrix Nochmal eine Aktualisierung der Matrix (siehe Comment 23)
(In reply to comment #23) > Folgendens Verhalten fehlt derzeit noch: > > * UMC-Server und UMC-Web-Server für ein gejointes System nach Ändern der > Netzwerkeinstellungen (Änderungen virtueller Geräte können ignoriert werden) > neustarten. > > * Zusätzlich einen Hinweis ausgeben, dass Dienste neu gestartet werden können, > wenn Netzwerkeinstellungen und Softwarepakete geändert werden Dieses Verhalten wurde noch ergänzt (siehe Matrix). univention-system-setup (5.0.71-1) unstable; urgency=low . * UMC: added restarting of UMC server and web server, added notifications when changing network devices and software (Bug #22904, Comment 23)
Created attachment 3898 [details] system-setup-matrix Es wurden jetzt noch die Neustartfälle in der Matrix ergänzt. Die Server werden jetzt auch bei SSL-Änderungen neugestartet. Zusätzlich wurde jetzt hinzugefügt, dass die Abfragen beim Long-Polling durch das Modul mit einem Fehler beendet werden (nach 1min), da ansonsten die Requests scheinbar durch den Browser nicht an den Webserver weitergeleitet werden. univention-system-setup (5.0.72-1) unstable; urgency=low . * UMC: added server restart also in the case of SSL certificate changes * UMC: make sure that long polling requests to setup/finished are canceled after 60sec (Bug #22904)
Der Login-Bildschirm wurde im System-Setup nach Abschließen der Join-Skripte noch angezeigt. Dies wurde korrigiert. univention-management-console-frontend (1.0.238-1) unstable; urgency=low . * umc.dialog: handle automatic login via long polling (Bug #22904) univention-system-setup (5.0.73-1) unstable; urgency=low . * UMC: use long polling for shutting down the session (Bug #22904)
Für die Software-Installation wurde noch ein "apt-get update" in das software/10software Skript eingefügt, da ansonsten Pakete nicht installiert werden können. univention-system-setup (5.0.74-1) unstable; urgency=low . * adapted software/10software script to call "apt-get update" first (Bug #22904)
Der folgende Fehler trat noch auf und wurde behoben: Auf einem Backup wurde das ausgeblendete Feld "LDAP-Basis" beim Speichern als fehlend und "required" ausgegeben. Auf einem ungejointen Backup werden die Felder für FQDN/Win-Domain/LDAP-Basis als leerer Wert gesetzt. Das sollte nur im Appliance-Modus so sein. → ausgelagert nach Bug 25076 univention-system-setup (5.0.77-1) unstable; urgency=low . * UMC: ignore field for LDAP base if it is hidden (Bug #22904)
Ein weiterer Fehler für Systemrollen != master wurde korrigiert. Durch diesen Fehler wurden das Join-Skript nicht korrekt aufgerufen. univention-system-setup (5.0.78-1) unstable; urgency=low . * UMC: fixed problem when running join script on roles != master (Bug #22904)
Auf nicht DC Master Systemen wurde der Account für den Join falsch übergeben. Aktualisiertes Paket baut.
Das Modul ist umgesetzt und wurde auf der Produkttests ausführlich gestestet (In reply to comment #32) > Auf nicht DC Master Systemen wurde der Account für den Join falsch übergeben. > Aktualisiertes Paket baut. das funktioniert jetzt auch
UCS 3.0-0 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer neueren Version von UCS erneut auftreten, so sollte dieser Bug dupliziert werden: "Clone This Bug"