# NetBox SLM NetBox SLM erweitert NetBox um die Verwaltung von Softwareprodukten, Versionen, Installationen und Lizenzen. Lizenzen können optional einer NetBox-Mandantengruppe und einem Mandanten zugeordnet werden. Diese Variante ist für **NetBox 4.6.5** vorgesehen. Die Oberfläche ist auf Englisch und Deutsch verfügbar. Die Sprache richtet sich nach der in NetBox für den Benutzer ausgewählten Sprache. ## Funktionen - Softwareprodukte und Hersteller verwalten - Versionen, Release-Typen und Supportzeiträume erfassen - Installationen Geräten, virtuellen Maschinen oder Clustern zuordnen - Softwarelizenzen einschließlich Laufzeit, Umfang und Ablageort verwalten - Lifetime-Lizenzen oder Erneuerungsintervalle in Tagen, Monaten oder Jahren erfassen - Lizenzdateien, Lizenzschlüssel und Links zum Anbieterportal hinterlegen - Lizenzen Mandantengruppen und Mandanten zuordnen - Bedienung über die NetBox-Oberfläche und REST-API - Filter, Bulk-Import und Bulk-Bearbeitung > **Hinweis:** Lizenzschlüssel werden in der NetBox-Datenbank und Lizenzdateien im konfigurierten NetBox- > Medienverzeichnis gespeichert. Der Zugriff auf Datenbank, REST-API und Medienverzeichnis sollte entsprechend > geschützt und gesichert werden. ## Installation NetBox installiert lokale Erweiterungen aus `/opt/netbox/local_requirements.txt`. Die Git-URL muss dort dauerhaft eingetragen werden, damit das Plugin bei einem späteren NetBox-Upgrade erneut installiert wird. ### 1. Git-Repository als lokale Anforderung eintragen ```bash echo "git+https://git.mrblake.cc/MrBlake/NetBox-SLM.git" >> /opt/netbox/local_requirements.txt ``` Vorher kann geprüft werden, ob der Eintrag bereits vorhanden ist: ```bash grep -qxF "git+https://git.mrblake.cc/MrBlake/NetBox-SLM.git" /opt/netbox/local_requirements.txt || \ echo "git+https://git.mrblake.cc/MrBlake/NetBox-SLM.git" >> /opt/netbox/local_requirements.txt ``` ### 2. Plugin mit Pip installieren Die Installation muss im Python-Virtual-Environment von NetBox erfolgen: ```bash /opt/netbox/venv/bin/pip install --upgrade --force-reinstall \ "git+https://git.mrblake.cc/MrBlake/NetBox-SLM.git" ``` Alternativ können alle lokalen Anforderungen installiert werden: ```bash /opt/netbox/venv/bin/pip install -r /opt/netbox/local_requirements.txt ``` Die installierte Version kann anschließend geprüft werden: ```bash /opt/netbox/venv/bin/pip show netbox-slm ``` Für diese Variante muss dort mindestens Version `1.11.1` stehen. ### 3. Plugin in NetBox aktivieren In `/opt/netbox/netbox/netbox/configuration.py` ergänzen: ```python PLUGINS = [ "netbox_slm", ] ``` Falls bereits andere Plugins eingetragen sind, wird `"netbox_slm"` lediglich zur vorhandenen Liste hinzugefügt. Eine zusätzliche `PLUGINS_CONFIG`-Konfiguration ist für den Standardbetrieb nicht erforderlich. ### 4. Datenbank migrieren und statische Dateien aktualisieren ```bash cd /opt/netbox/netbox /opt/netbox/venv/bin/python manage.py migrate /opt/netbox/venv/bin/python manage.py collectstatic --no-input ``` ### 5. NetBox-Dienste neu starten Bei einer üblichen systemd-Installation: ```bash sudo systemctl restart netbox netbox-rq ``` Je nach Installation können die Namen der Dienste abweichen. ## Aktualisierung ```bash /opt/netbox/venv/bin/pip install --upgrade --force-reinstall \ "git+https://git.mrblake.cc/MrBlake/NetBox-SLM.git" cd /opt/netbox/netbox /opt/netbox/venv/bin/python manage.py migrate /opt/netbox/venv/bin/python manage.py collectstatic --no-input sudo systemctl restart netbox netbox-rq ``` Der Eintrag in `/opt/netbox/local_requirements.txt` bleibt dabei bestehen. ## Deinstallation 1. `"netbox_slm"` aus der `PLUGINS`-Liste entfernen. 2. Die Git-Zeile aus `/opt/netbox/local_requirements.txt` entfernen. 3. Das Python-Paket deinstallieren: ```bash /opt/netbox/venv/bin/pip uninstall netbox-slm ``` Die Plugin-Tabellen werden dabei nicht automatisch aus der Datenbank gelöscht. ## Ursprung und Lizenz Dieses Repository basiert auf dem ursprünglichen Projekt [ICTU/netbox_slm](https://github.com/ICTU/netbox_slm). **ICTU** ist der ursprüngliche Autor und Herausgeber. [Mart Visser](https://github.com/MartVisser) wird im Originalprojekt als Ansprechpartner genannt. Die Anpassungen in diesem Fork werden unter [git.mrblake.cc/MrBlake/NetBox-SLM](https://git.mrblake.cc/MrBlake/NetBox-SLM) gepflegt. Das Projekt steht unter der [Apache License 2.0](LICENSE). Die Hinweise auf die ursprünglichen Urheber bleiben erhalten.