Univention Bugzilla – Bug 8969
sysinfo für UMC
Last modified: 2009-12-21 08:49:17 CET
Mit Univention Console konnte ein univention-sysinfo abgesetzt werden. Das sollte mit UMC auch möglich sein.
Da das nicht so aufwendig sein kann, sollten wir das noch in der 2.0 machen.
Es soll ein einfaches UMC-Modul für die Generierung von Systeminformationen implementiert werden. Der Kunde soll über das Modul die Hardwareinformationen per HTTPS-Put-Request auf forge.univention.de hochladen können. Falls keine Verbindung aufgebaut werden kann, dann können die Daten auch per Mailto-Link verschickt werden. Auf der Seite sollten die folgenden Werte eingetragen werden können: - Hersteller - Typ - Kommentar Es muss sehr übersichtlich und transparent dargestellt werden, welche Informationen an Univention geschickt werden. Vielleicht in einer Art Liste mit zusätzlichen optionalen Details. In den Daten sollte eine eindeutige Kennung sein, damit mehrfach Meldungen eines Kunden erkannt werden können. Bspw. wenn dieser das System zum wiederholten Mal installiert. Optional sollte es möglich sein Support-relevante Informationen in den Daten zu integrieren. Das müsste über eine Checkbox implementiert werden. Wenn diese Checkbox aktiviert ist, dann solle die Eingabe einer Ticketnummer möglich sein.
Den bug sollten wir besprechen, sobald du eine Idee für die Umsetzung hast.
Created attachment 1857 [details] Entwurf für das UMC Modul
Zur Identifikation der Daten wird jetzt die MAC-Adresse verwendet, da die CPUID nicht eindeutig ist. Diese beschreibt nur den Prozessor und seine Fähigkeiten und ist somit nicht eindeutig.
(In reply to comment #5) > Zur Identifikation der Daten wird jetzt die MAC-Adresse verwendet, da die CPUID > nicht eindeutig ist. Diese beschreibt nur den Prozessor und seine Fähigkeiten > und ist somit nicht eindeutig. Was passiert bei mehreren Netzwerkkarten? Ausserdem muss serverseitig (also auf forge) berücksichtigt werden, dass die MAC bei Virtualisierung nicht eindeutig ist.
(In reply to comment #6) > (In reply to comment #5) > > Zur Identifikation der Daten wird jetzt die MAC-Adresse verwendet, da die CPUID > > nicht eindeutig ist. Diese beschreibt nur den Prozessor und seine Fähigkeiten > > und ist somit nicht eindeutig. > > Was passiert bei mehreren Netzwerkkarten? Momentan nehem ich die erste Netzkarte nach lo, sprich weitere werden nicht berücksichtigt. > Ausserdem muss serverseitig (also auf forge) berücksichtigt werden, dass die > MAC bei Virtualisierung nicht eindeutig ist. Bei Upload kann überprüft werden, ob die Datei schon existiert. Eine Alternative 'hostid' wurde auch kurz betrachtet: Das scheint aus der IP-Adresse eine eindeutige Nummer zu erstellen (Network Byte Order). Das ist gerade bei internen Netzen (192.168.0.0) auch nicht besser. Eine weitere Möglichkeit ist dmidecode. Darin ist eine UUID enthalten. Diese könnte man verwenden. Es funktioniert allerdings auf XEN Systemen nicht. Dafür müsste dann ein Fallback verwendet werden.
(In reply to comment #7) > Eine weitere Möglichkeit ist dmidecode. Darin ist eine UUID enthalten. Diese > könnte man verwenden. Es funktioniert allerdings auf XEN Systemen nicht. Dafür > müsste dann ein Fallback verwendet werden. Das ist ja Bug #14039, ich denke das sollte allgemein verwendet werden um Hersteller/System vorauszufüllen.
Es gibt jetzt das neue Quellpaket univention-system-info das drei Binärpakete zur Verfügung stellt: univention-system-info: Das Skript zum Ermitteln der Systemkonfiguration univention-management-console-system-info: Das UMC Modul univention-system-info-upload: Enthält das CGI Upload-Skript, das die Daten von dem UMC Modul annimmt Das UMC Modul bietet die möglich die Daten aper Mail an Univention zu schicken (als Anhang) oder über einen Upload, den das UMC Modul durchführt. Der Upload kann mit einigen Variablen konfiguriert werden umc/sysinfo/upload/address: Die Adresse wird informiert, wenn neue Dateien hochgeladen worden umc/sysinfo/upload/path: In dem Pfad werden die Archive durch das Upload-Skript abgelegt. Muss unterhalb des Root von Apache liegen!!!! umc/sysinfo/upload/size: Maximale Größe der Archive in Bytes umc/sysinfo/upload/url: URL unter der das Upload Skript zu erreichen ist (Beispiel: https://m220/cgi-bin/system-info-upload.py ) Das SysInfo Modul ist das erste Modul, dass einen mehrseitigen Wizards zur Verfügung stellt. Daher sollte auch diese Funktionalität getestet werden. Zusätzlich nutzt das SysInfo Modul die neue Fähigkeit, dass ein Response dem Client erklären kann, dass das Modul geschlossen werden möchte. Sprich mit dem Klick auf den Beenden-Button sollte das Modul geschlossen und die Übersicht wieder angezeigt werden. Es fehlt noch: - Das Upload-Skript muss noch eine Mail verschicken, wenn eine neue Datei hochgeladen worden ist. - Doku Bugs zu den neuen Fähigkeiten des UMC-Kerns müssen noch angelegt werden
(In reply to comment #9) > Es fehlt noch: > - Das Upload-Skript muss noch eine Mail verschicken, wenn eine neue Datei > hochgeladen worden ist. ist implementiert > - Doku Bugs zu den neuen Fähigkeiten des UMC-Kerns müssen noch angelegt werden Dazu wurden Bugs angelegt.
Das UMC Modul ist auf unserer Standard Profil-basierten Installation nicht vorhanden. Besteht eine Abhängigkeit auf das UMC-Modul? Wenn nicht, dann bitte hinzufügen.
(In reply to comment #11) > Das UMC Modul ist auf unserer Standard Profil-basierten Installation nicht > vorhanden. Besteht eine Abhängigkeit auf das UMC-Modul? Wenn nicht, dann bitte > hinzufügen. Abhängigkeit wurde zum Paket univention-management-console hinzugefügt.
Aus der Installation.log: Setting up univention-management-console-themes (2.0.23-2.302.200910080907) ... Setting up univention-system-info (0.1.1-1.5.200910071507) ... Setting up univention-management-console-system-info (0.1.1-1.5.200910071507) ... authentication error: {'info': 'unsupported extended operation', 'desc': 'Protocol error'} authentication error: {'info': 'unsupported extended operation', 'desc': 'Protocol error'} authentication error: {'info': 'unsupported extended operation', 'desc': 'Protocol error'} File: /etc/apache2/sites-available/univention-management-console-system-info * Restarting Univention Management Console Server ok: run: univention-management-console-server: (pid 20824) 0s, normally down ...done. Enabling site univention-management-console-system-info. Run '/etc/init.d/apache2 reload' to activate new configuration! * Restarting web server apache2 ^[[80G ^M^[[74G[ ok ] UMC zeigt nur noch ein Directory Listing an: Index of /univention-management-console [ICO] Name Last modified Size Description [DIR] Parent Directory - [DIR] system-info/ 07-Oct-2009 15:11 - [DIR] www/ 08-Oct-2009 07:46 -
univention-management-console-system-info hat unterhalb von /var/www/univention-management-console/ ein Verzeichnis angelegt. Dadurch war der Link kaputt.
Aktuelle Standard UCS Installation durchgeführt. Das UMC Modul ist nicht da. Testsystem: 10.201.55.1
(In reply to comment #15) > Aktuelle Standard UCS Installation durchgeführt. Das UMC Modul ist nicht da. > Testsystem: 10.201.55.1 joinscripthelper.lib hat das Join-Skript als invalid deklariert. Die VERSION war in Anführungszeichen definiert. Das ist angepasst. Das Paket baut gerade
Die UUID aus dmidecode kann zur eindeutigen Identifizierung auf XEN-Instanzen nicht verwendet werden, da sie sich nach einem Neustart ändert. Diese kann man an der Datei /sys/hypervisor/type erkennen: # cat /sys/hypervisor/type xen In dem Fall sollte die MAC-Adresse genommen werden. Evtl. als MD5-Hash ip -o -f link addr show up | grep -v lo: | head -n 1 | sed 's|.*link/ether \([0-9a-f:]*\) .*|\1|;s|:|-|g' | md5sum
Das Verzeichnis /var/www/univention-system-info-upload/archives/ aus dem Paket univention-system-info-upload muss noch dem Benutzer www-data gegeben werden, damit system-info-upload.py die Datei auch schreiben kann.
Der Absender der Mail von system-info-upload.py sollte noch per UCR konfigurierbar sein. Momentan werden die Mails von unserem Mail-Server abgelehnt
Der Download des Archivs funktioniert nur, wenn man mit funktionierender DNS-Auflösung auf das UCS-System zugreift. Das dürfte gerade bei Installations-Support nicht immer der Fall sein. Der Download-Link sollte entweder immer die IP verwenden oder (besser) relativ angegeben werden.
In den Infos ist ja kein UCR-Dump mehr, dadurch ist aber die für den (Installations-)Support wichtige Versionsnummer von UCS nicht mehr ableitbar. Die Kernel-Version ist durch Sec-Updates nicht zwingend eindeutig einer UCS-Version zuzuordnen.
Auf der letzten Seite sollten die Buttons für "Hochladen" und "Mail" nicht auf einer Höhe mit dem "zurück"-Button sein, der "zurück"-Button sollte wie bei den vorherigen Schritten unter den Aktions-Buttons liegen. Vom Ablauf her fänd ich es übrigens eingängiger, hier per Radiobuttons die Auswahl Mail/Upload mit dem Default auf Upload anzubieten und dann unten wieder eine "weiter"-Schaltfläche zu haben.
(In reply to comment #22) > Vom Ablauf her fänd ich es übrigens eingängiger, hier per Radiobuttons die > Auswahl Mail/Upload mit dem Default auf Upload anzubieten und dann unten wieder > eine "weiter"-Schaltfläche zu haben. Wenn das realisiert werden soll, müssen noch Radio-Button "erfunden" werden
(In reply to comment #18) > Das Verzeichnis /var/www/univention-system-info-upload/archives/ aus dem Paket > univention-system-info-upload muss noch dem Benutzer www-data gegeben werden, > damit system-info-upload.py die Datei auch schreiben kann. ist mit dpkg-statoverride realisiert (In reply to comment #19) > Der Absender der Mail von system-info-upload.py sollte noch per UCR > konfigurierbar sein. Momentan werden die Mails von unserem Mail-Server > abgelehnt Ist jetzt setzbar über umc/sysinfo/upload/sender (In reply to comment #20) > Der Download-Link sollte entweder immer die IP verwenden oder (besser) relativ > angegeben werden. Ist jetzt relativ (In reply to comment #21) > In den Infos ist ja kein UCR-Dump mehr, dadurch ist aber die für den > (Installations-)Support wichtige Versionsnummer von UCS nicht mehr ableitbar. > Die Kernel-Version ist durch Sec-Updates nicht zwingend eindeutig einer > UCS-Version zuzuordnen. Die UCR Variablen mit der Version sind wieder enthalten Offen ist noch der Punkt aus Kommentar #c22
(In reply to comment #23) > (In reply to comment #22) > > Vom Ablauf her fänd ich es übrigens eingängiger, hier per Radiobuttons die > > Auswahl Mail/Upload mit dem Default auf Upload anzubieten und dann unten wieder > > eine "weiter"-Schaltfläche zu haben. > > Wenn das realisiert werden soll, müssen noch Radio-Button "erfunden" werden Dann erstmal einen enhancement-Bug davon machen? Wenn es wenig Aufwand ist dann sollte einfach der "zurück"-Button tiefer als die anderen beiden gesetzt werden.
(In reply to comment #25) > (In reply to comment #23) > > (In reply to comment #22) > > > Vom Ablauf her fänd ich es übrigens eingängiger, hier per Radiobuttons die > > > Auswahl Mail/Upload mit dem Default auf Upload anzubieten und dann unten wieder > > > eine "weiter"-Schaltfläche zu haben. > > > > Wenn das realisiert werden soll, müssen noch Radio-Button "erfunden" werden > > Dann erstmal einen enhancement-Bug davon machen? Bug #15959 ist angelegt > Wenn es wenig Aufwand ist dann sollte einfach der "zurück"-Button tiefer als > die anderen beiden gesetzt werden. Wenn die anderen beiden Button höher stehen sieht das nicht so gut aus. Daher wird das erst einmal zu bleiben.
Auf dem automatisch installiertem System von letzter Nacht ist das UMC-Modul nicht vorhanden: https://10.203.10.230/univention-management-console/index.php Bitte dort aber nichts anpassen.
(In reply to comment #27) > Auf dem automatisch installiertem System von letzter Nacht ist das UMC-Modul > nicht vorhanden: > https://10.203.10.230/univention-management-console/index.php > > Bitte dort aber nichts anpassen. Im installation.log ist zu sehen, dass das Join-Skript ausgeführt wird. Allerdings sind danach die Objekte im UDM nicht angelegt. Eine Fehlermeldung ist auch nicht zu sehen. Ich habe jetzt auf die joinscripthelperlib umgestellt. Mit der nächsten Installations-DVD kann ich dann prüfen, ob dass das Problem behebt.
Bei einer Installation mit der DVD von heute war das Modul anschließend zu sehen.
Die Mail die beim Empfang eines Archives verschickt wird, wurde noch angepasst. Diese enthält jetzt einen Link zu dem Archiv. Ausserdem kann der Inhalt des Verzeichnisses mit den Archiven nicht mehr aufgelistet werden.
Ich habe zunächst die Übertragung per Mails ausgewählt, bin dann zum Hochladen zurück gegangen. Es wird dann angezeigt: Übertragung erfolgreich Die Informationen konnten nicht an Univention übermittelt werden. Als Alternative würden wir Sie bitten die Informationen per Mail an Univention zu versenden. Dafür gehen Sie bitte wie folgt vor: Installiert ist univention-management-console-system-info in der Version 0.1.7-1.12.200910221441
In der Benachrichtigungsmail steht noch der falsche Link: feedback@univention.de schrieb: <snip> > > A new Univention system info archive has been uploaded. > > Archive: [1]564D9775-EABE-C443-1E23-3AE41F7A6EAE.tar.gz > > > > [1] https://m220.ucs.test/univention-system-info-upload/archives/564D9775-EABE-C443-1E23-3AE41F7A6EAE.tar.gz <snip>
(In reply to comment #32) > In der Benachrichtigungsmail steht noch der falsche Link: > > feedback@univention.de schrieb: > <snip> > > > > A new Univention system info archive has been uploaded. > > > > Archive: [1]564D9775-EABE-C443-1E23-3AE41F7A6EAE.tar.gz > > > > > > > > [1] https://m220.ucs.test/univention-system-info-upload/archives/564D9775-EABE-C443-1E23-3AE41F7A6EAE.tar.gz > <snip> Diese Mail wurde auf meinem Testsystem (und nicht von forge.univention.org) generiert. Daher steht dort auch mein Testsystem als Server im Link.
(In reply to comment #31) > Ich habe zunächst die Übertragung per Mails ausgewählt, bin dann zum Hochladen > zurück gegangen. Es wird dann angezeigt: > > Übertragung erfolgreich > > Die Informationen konnten nicht an Univention übermittelt werden. Als > Alternative würden wir Sie bitten die Informationen per Mail an Univention zu > versenden. Dafür gehen Sie bitte wie folgt vor: > > Installiert ist univention-management-console-system-info in der Version > 0.1.7-1.12.200910221441 Hier war die Überschrift falsch. Der Upload hat aufgrund eines Typos im Upload Skript nicht funktioniert. Das ist jetzt korrigiert.
Tippfehler (Deutsch): Auf der ersten Seite: "Allgenmeine" "Einwillung" Auf der zweiten Seite: "mitIhrer" "Einwillung" "Graphikkarte" Auf der Seite "Übertragung per Mail" "utnen" ------ Ich habe auf meiner Test-VM versucht das Archiv hochzuladen, das hat leider nicht funktioniert. ----- Wenn ich das Modul starte und dann auf den Reiter "Systeminformation" klicke bekomme ich den folgenden Traceback: Die Ausführung des Kommandos 'sysinfo/show' ist fehlgeschlagen: Traceback (most recent call last): File "/usr/lib/python2.4/site-packages/univention/management/console/handlers/__init__.py", line 180, in execute func( object ) File "/usr/lib/python2.4/site-packages/univention/management/console/handlers/sysinfo/__init__.py", line 112, in sysinfo_show if object.options[ 'support' ]: KeyError: 'support' ------ Tippfehler (Englisch): "modul" das kommt mehrfach vor Ist "These" im zweiten Satz korrekt? "Engeenier" "aksed" "aobut" "hsa" "willb e" "downlaoded" "possiblities" "Nnivention" Transfer the information Ist "be sending the data via mail" korrekt? "assistent" "tranfered" ------ Wenn die Übertragung fehlgeschlagen ist, dann kommt die Meldung: "The information could not be tranfered to Univention successfully. Therefor we would like you to ask to send the information via mail to Univention. Please follow the steps: " Aber anschließend fehlen die Schritte.
Die Texte sind angepasst und der Traceback ist behoben. (In reply to comment #35) > Ich habe auf meiner Test-VM versucht das Archiv hochzuladen, das hat leider > nicht funktioniert. Hast du die Maschine noch? Auf meiner Testmaschine hat es gerade funktioniert.
(In reply to comment #36) > Die Texte sind angepasst und der Traceback ist behoben. > > (In reply to comment #35) > > Ich habe auf meiner Test-VM versucht das Archiv hochzuladen, das hat leider > > nicht funktioniert. > > Hast du die Maschine noch? Auf meiner Testmaschine hat es gerade funktioniert. Das war ein Problem auf forge. Da war nicht die neuste Version von univention-system-info-upload installiert.
Wenn ich das Tool auf Visdalen ausführe, dann wird mir angezeigt, dass dort 7970.15 G Arbeitsspeicher drin sind. Das Feld sollte breiter sein und der Wert sollte angepasst werden: root@visdalen:~# free -m total used free shared buffers cached Mem: 7970 7726 243 0 1223 1499 -/+ buffers/cache: 5002 2967 Swap: 2047 0 2047 root@visdalen:~#
In dem Entwurf steht Kommentar, im fertigen Modul steht Beschreibung. Im Modul sollte ebenfalls Kommentar verwendet werden. Wenn möglich, dann sollte dieser, wie im Entwurf, auch mehrspaltig sein.
Die Anpassungen sind eingearbeitet
Traceback bei Eingabe eines Umlauts in Kommentar, Hersteller oder Modellfeld: Die Fehlermeldung enthält ausserdem einen englische Meldung ('Report this error to Univention Feedback') ------------------------------------------------------------------------- Ein Fehler ist aufgetreten Die Ausführung des Kommandos 'sysinfo/show' ist fehlgeschlagen: Traceback (most recent call last): File "/usr/lib/python2.4/site-packages/univention/management/console/handlers/__init__.py", line 180, in execute func( object ) File "/usr/lib/python2.4/site-packages/univention/management/console/handlers/sysinfo/__init__.py", line 116, in sysinfo_show ret = self.collect_data( object ) File "/usr/lib/python2.4/site-packages/univention/management/console/handlers/sysinfo/__init__.py", line 182, in collect_data ret = umct.run_process( cmd, timeout = 10000 ) File "/usr/lib/python2.4/site-packages/univention/management/console/tools.py", line 115, in run_process child = subprocess.Popen( command, shell = shell, stdout = out, stderr = err ) File "/usr/lib/python2.4/subprocess.py", line 544, in __init__ errread, errwrite) File "/usr/lib/python2.4/subprocess.py", line 982, in _execute_child raise child_exception TypeError: execv() arg 2 must contain only strings Report this error to Univention Feedback <feedback@univention.de> -------------------------------------------------------------------------
Der Kommentar in 00A3C41E-306E-DE11-B652-002618D2BADF/info ist etwas seltsam formatiert, ggf. ist es sinnvoll das mit zu fixen: Comment : t e s t
Ich hatte als Ticketnr. 12345678 eingetragen, darauf steht im info File: Ticket No : True
Alle drei Punkte aus den Kommentaren 41-43 müssten jetzt funktionieren.
Verified: Manufacturer: System manufacturer äöü Model : System Product Name äöü Comment : öäü Ticket No : 12345678
UCS 2.3 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer neueren Version von UCS erneut auftreten, so sollte der Bug dupliziert werden: "Clone This Bug".