Hardwaredatenbank

thumb_screenshot_050630_101923Eine Institution sammelt im Laufe der Zeit ein erkleckliches Häufchen an Hardware an. PCs, Drucker, Monitore, … Abgesehen davon, daß man sowieso verpflichtet ist, eine Inventarliste zu führen – Irgendwann tauchen Fragen auf wie „Wieviele meiner Rechner kommen meigentlich mit einem Programm klar, welches xxx MB Hauptspeicher benötigt?“. Oder: „Wieviele TFTs haben wir eigentlich im Verhältnis zu CRTs?“. Oder: „Was für einen Rechner hat Herr xyz?“.

Natürlich möchte man dieses Programm von jedem Rechner aus bedienen können. Wie möglichst bei allen meiner Lösungen ist auch bei dieser die Wahl des Clients egal. Ein Webbrowser und ein Netzzugang muß es sein, sonst nix.

Die Lösung

Nach dem Ansehen mehrerer Lösungen, sowohl kommerzieller als auch Open Source, bin ich zu dem Schluß gelangt, daß das, was ich möchte, nicht verfügbar ist. Entweder sind solche Programme auf Windowsclients beschränkt, sie sind zu teuer, meistens sind es eierlegende Wollmilchsäue, die alles machen aber nix richtig. Also selbst programmieren und hier ist das, was auf unsere Bedürfnisse am besten zugeschnitten ist. Wenn andere andere Wünsche haben, mögen sie sie mir mitteilen. Dann baue ich das entweder ein – oder Sie müssen ebenfalls selbst programmiern 😉

Screenshots

 

thumb_screenshot_050630_101800 thumb_screenshot_050630_101818
 thumb_screenshot_050630_101923  thumb_screenshot_050630_102122

 

Details

Dieses Programm erfüllt die folgenden Anforderungen:

  • Einfachst zu bedienen
  • Client-Systemunabhängig
  • Eigene Nutzer- und Rechteverwaltung, eigenes Sessionmanagement
  • Einfache Erweiterbarkeit in Bezug auf weitere Suchmöglichkeiten und Datenbankabfragen

Anforderungen

Das Programm wurde in Perl erstellt und sollte insofern auf einem Server lauffähig sein, auf dem ein Perl funktioniert. Entwickelt und getestet wurde auf Linux/Suse. Desweiteren sind einige Perlmodule notwendig, die sehr einfach per CPAN-Modul (perl -MCPAN -e shell) nachinstalliert werden können, wenn sie fehlen. Es sind dies die Module

  • CGI für die Kommunikation über die CGI-Schnittstelle.
  • File::Basename um aus den übergebenen Dateinamen die Pfade zu entfernen.
  • Digest::MD5 um Passworte nicht im Klartext sondern als MD5-Hash zu speichern.
  • Date::Calc zu Datumsberechnungen.
  • (Data::Dumper nur für Debugzwecke)
  • DBI mit dem Modul Mysql zum Zugriff auf eine MySQL-Datenbank.

Darüber hinaus wird ein Webserver (möglichst Apache) und MySQL benötigt.

Installation

Vorausgesetzt wird ein lauffähiges System mit Perl und Webserver.

  1. Installation der Perlmodule aus obiger Liste
  2. Kopieren des Programmes in das cgi-bin Verzeichnis des Webservers
  3. Anlegen eines Verzeichnisses, welches nicht im Dokumentenpfad (= documentroot) des Webserver liegen darf, aber als Owner mit Schreibrechten den des Prozesses des Webservers hat. Hier kann man beispielsweise /srv/www/hardwaredocs verwenden und den Owner auf wwwrun setzen (SuSe). In diesem Verzeichnis werden die hochgeladenen gescannten Dokumente gespeichert, es sollte also ein bisschen Speicherplatz vorhanden sein.
  4. Entpacken der Icon-Dateien (download s.u.) im Webserverroot. Erzeugt ein Unterverzeichnis myicons, welches natürlich umbenannt werden kann. Der Pfad zu den Icons wird im Programm konfiguriert (s.u.).
  5. Optional: Anpassen der Webserverkonfiguration, so daß das Script unter einer einfach zu merkenden URL erreichbar ist. Dazu wird in die Konfigurationsdatei des Apache die Zeile
    Redirect /hardware /cgi-bin/hardware.pl
    eingefügt und der Apache neu gestartet. Das Programm ist nun unter der URL http://mein.web.server/hardware erreichbar – aber jetzt noch nicht aufrufen!.
  6. Anlegen einer Datenbank in MySQL sowie eines Users, der nur auf dieser Datenbank die Rechte Update, Select, Delete und Insert haben muss.
  7. Einspielen der Datenbankstruktur (download-Link siehe unten) per
    mysql hardware -p -u hardware < hardware.sql
  8. Anpassen der Konfiguration am Anfang des Programmes. Achtung: Es ist wichtig, einmal alle Optionen innerhalb des Konfigurationsabschnittes der Datei durchzugehen und sich zu überlegen, ob man mit diesen Werten glücklich ist.
  9. Im Webbrowser die URL öffnen, die man in der REDIRECT-Anweisung konfiguriert hat. Im obigen Beispiel ist dies
    http://mein.server.tld/hardware
    Jetzt sollte die Loginmaske erscheinen. Wenn nicht oder wenn sonst etwas merkwürdig erscheint, lohnt ein Blick in die Syslogdatei (meistens /var/log/messages) und das Errorlog des Apache (z.B. /var/log/httpd/error_log oder /var/log/apache2/error_log).
  10. Einloggen als admin mit dem Passwort schaarwaechter. Bitte als allererstes dieses Passwort in der Benutzerverwaltung oder per Menüpunkt Passwort ändern ändern!!!
  11. Jetzt kann man weitere Benutzer anlegen und mit dem Betrieb beginnnen. Für den Betrieb gibt es (noch) kein Handbuch oder eine Anleitung. Wenn sich jemand erbarmt und etwas dazu schreibt, packe ich das sehr gerne auf diese Seite bzw verlinke es von hier.
  12. Denken Sie daran, ab und zu in die log-Tabelle zu schauen. Diese wird niemals per Programm geleert oder gekürzt, wächst also ständig.
  13. Geht nicht, aber keine Ahnung, warum? Schon lange gesucht, aber keine Ursache gefunden? Mail an mich genügt, bitte dann die eigene Konfiguration anhängen.

Historie

 

  • 1.4 (9/05):
    • Kleinere kosmetische Änderungen in der Eingabemaske zum deutlicheren Unterscheiden der Felder.
    • Icons zum schnellen Ändern des Standortes eines Datensatzes auf Schrott oder Lager (heißt bei uns Netzzentrale) inklusive ändern der Historie und des Status.
  • 1.3.5 6/05: Erste Version veröffentlicht

Download

Creative Commons Lizenzvertrag
Dieses Werk bzw. Inhalt steht unter einer Creative Commons Namensnennung – Nicht-kommerziell – Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz. Die Stellen im Programm, an denen mein Name steht, dürfen nicht verändert werden; die Stellen, an denen mein Name in den html-Ausgaben auftaucht, dürfen ebenfalls nicht verändert oder gelöscht werden.
Selbstverständlich übernehme ich keine Haftung jeglicher Art für irgendwelche Schäden, die direkt oder indirekt durch die Nutzung dieses Programmes entstehen könnten.
Fehlerberichte und Anregungen zur Weiterentwicklung sind jederzeit willkommen.
Ich freue mich auch über eine Benachrichtigungsmail, wenn das Programm irgendwo eingesetzt wird.