Automatisiertes IT-Inventar mit Bash, Nmap & Flask: Mein CMDB-Projekt
In jedem gewachsenen IT-Netzwerk ist es früher oder später unverzichtbar, eine zentrale Übersicht über alle Geräte zu haben – wer steht wo, mit welcher IP, welchem MAC und ist wann zuletzt aufgetaucht? Genau dafür habe ich ein leichtgewichtiges, automatisiertes System entwickelt, das auf bewährten Tools wie Bash, nmap, Python und Flask basiert: CMDB Scan- & Web-Dienst.
Was macht das Tool?
Mein Projekt ist ein automatisierter Netzwerk-Scanner mit Weboberfläche und Reporting-Tool, speziell entwickelt für den Betrieb in kleinen bis mittelgroßen Netzwerken. Der Dienst besteht aus drei Kernkomponenten:
- – Scan-Service: Regelmäßige, konfigurierbare Netzwerkscans via nmap
- – Web-Frontend: Anzeige aller erkannten Geräte im Browser (Flask)
- – CLI-Reporting: Berichte und CSV-Exports direkt im Terminal
Das Tool ist auf maximale Transparenz, einfache Konfiguration und Betriebssystemunabhängigkeit ausgelegt. Es läuft unter Linux/macOS – getestet u. a. auf einem Raspberry Pi und einem vServer.
Tech-Stack & Architektur
Das Projekt setzt auf etablierte Open-Source-Komponenten:
- – nmap für die Netzwerkerkennung
- – psutil zur Systeminformation
- – Python 3 + Flask für Webinterface & Backend
- – MySQL/MariaDB als Daten-Backend
- – Bash-Skripte für Automatisierung & Systemintegration
- – Systemd-Support für automatischen Start
Die Architektur ist modular aufgebaut – Web, Scan und Reporting laufen getrennt und können auch auf verschiedenen Hosts ausgeführt werden. Ebenfalls ist es möglich mehrere Scanner (Instanzen) parallel laufen zu lassen.
Aktuell ist das Projekt bei github.com im Status PRIVATE. Wer Interesse daran hat meldet sich einfach bei mir
Installation in 2 Minuten
git clone https://github.com/gkellershs/cmdb.git
cd cmdb
chmod +x *.sh
./install_cmdb.sh
Das Skript erstellt ein Virtualenv, installiert alle Abhängigkeiten und bereitet Konfigurationsdateien vor.
Für ein produktives Setup einfach scan_loop.sh und start-app.sh als systemd-Dienste einbinden:
sudo ./install_systemd_cmdb.sh install
Fertig – der Scan läuft nun automatisch im Hintergrund und das Webinterface ist erreichbar.
Konfiguration: Klar & Textbasiert
Alle wichtigen Einstellungen erfolgen über einfache .cfg-Dateien im config/-Ordner:
- – subnet.cfg – Welche Netze sollen gescannt werden
- – hosts.cfg / mac.cfg – Manuelle Hostnamen-Zuordnung
- – cmdb.cfg – Datenbank, Pfade, Logging
Mitgelieferte .template-Dateien machen den Einstieg leicht – das Setupskript setup-config.sh erstellt bei Bedarf eine Startkonfiguration.
Webinterface & Features

Die Weboberfläche ist minimalistisch, aber funktional:
- – Geräte-Übersicht nach Standort/Subnetz
- – CSV-Export für Excel & Co.
- – Echtzeit-Interaktion mit JS (Filterung/Sortierung)
- – Logging zur Fehlerdiagnose
Reporting per CLI
Für Admins, die lieber auf der Konsole arbeiten, gibt’s report.py. Damit lassen sich Geräte nach Standort, MAC oder IP filtern, als Tabelle anzeigen oder exportieren – ideal für tägliche Checks oder Inventarlisten.
python3 report.py
Lessons Learned
Einige Dinge, die du beim Einsatz beachten solltest:
- – MAC-Erkennung nur im Layer2-Bereich: Wird über VPN oder Routing gearbeitet, sind MAC-Adressen nicht sichtbar.
- – Multi-Host-fähig: Mehrere Scanner können parallel betrieben werden – ideal bei Standortvernetzungen.
- – Root erforderlich: Für vollständigen Netzwerkzugriff muss das Skript als root ausgeführt werden.
Lizenz & Mitmachen
Das Projekt steht unter der MIT-Lizenz. Du findest den kompletten Code auf GitHub:
👉 https://github.com/gkellershs/cmdb
Ich freue mich über Feedback, Feature-Ideen oder Pull Requests!
Kurzfassung
Ein einfacher, robuster und vollständig anpassbarer CMDB-Scanner mit Web-Frontend für Admins, die ihre IT-Infrastruktur im Griff behalten wollen – ohne Cloud, ohne Vendor-Lockin, mit voller Kontrolle über ihre Daten.
Hinterlasse einen Kommentar