Wie installiere ich NetBox IRM (Infrastructure Resource Modelling Tool) auf einem Ubuntu 24.04 Server?
NetBox ist eine Infrastruktur-Ressourcen-Modellierung (IRM), die für die Netzwerkautomatisierung und das Infrastruktur-Engineering entwickelt wurde. Ursprünglich wurde es vom DigitalOcean-Team entwickelt und ist jetzt ein Open-Source-Projekt, das unter der Apache-2-Lizenz veröffentlicht wird.
NetBox wurde im Python-Django-Web-Framework mit PostgreSQL als Standarddatenbank entwickelt und die Installation von NetBox ist ähnlich wie bei anderen Python-Django-Webanwendungen.
Diese Anleitung zeigt dir, wie du Netbox IRM auf dem Ubuntu 24.04 Server mit PostgreSQL als Datenbank und Apache als Reverse Proxy installierst. Außerdem wirst du Netbox mit HTTPS über Certbot und Letsencrypt absichern.
Voraussetzungen
Bevor du fortfährst, solltest du sicherstellen, dass du folgende Voraussetzungen erfüllst:
- Einen Ubuntu 24.04 Server
- Einen Nicht-Root-Benutzer mit Administrator-Rechten
- Einen Domainnamen, der auf die IP-Adresse des Servers zeigt
Installieren der Abhängigkeiten
Um Netbox zu installieren, musst du sicherstellen, dass die Abhängigkeiten auf deinem Ubuntu-Server installiert sind. Dazu gehören Python3, der PostgreSQL Server, der Apache Webserver, Redis und die Systembibliotheken. In diesem Abschnitt wirst du diese Pakete mit dem APT-Paketmanager installieren.
Führe zunächst den folgenden Befehl aus, um deinen Ubuntu-Paketindex zu aktualisieren.
sudo apt update
Nach der Aktualisierung installierst du die Abhängigkeiten für Netbox mit dem folgenden Befehl. In diesem Beispiel installierst du PostgreSQL, Apache, Python, Redis, Certbot, Build-Abhängigkeiten und einige Bibliotheken.
sudo apt install apache2 postgresql postgresql-common libpq-dev redis-server git certbot python3 python3-pip python3-venv python3-dev build-essential libxml2-dev libxslt1-dev libffi-dev libssl-dev zlib1g-dev
Gib„Y“ ein, um die Installation zu bestätigen.
Nachdem die Installation abgeschlossen ist, führe den Befehl „systemctl“ aus, um den Status des Apache-Webservers zu überprüfen.
sudo systemctl is-enabled apache2 sudo systemctl status apache2
In der folgenden Ausgabe kannst du sehen, dass Apache läuft und aktiviert ist.
Überprüfe abschließend den Status des PostgreSQL-Servers mit folgendem Befehl:
sudo systemctl is-enabled postgresql sudo systemctl status postgresql
In der folgenden Ausgabe siehst du, dass PostgreSQL aktiviert ist und mit dem Status exited läuft (systemd kann den zu überwachenden Dienst nicht finden).
Einrichten von PostgreSQL
Nachdem die Abhängigkeiten installiert sind, musst du den PostgreSQL-Server einrichten, indem du einen neuen Benutzer und eine neue Datenbank anlegst, die Netbox verwenden wird.
Melde dich mit dem unten stehenden Befehl beim PostgreSQL-Server an.
sudo -u postgres psql
Führe nun die folgenden Abfragen aus, um einen neuen Benutzer„netbox“ mit dem Passwort„netboxpassword“ und die neue Datenbank„netboxdb“ zu erstellen.
CREATE USER netbox LOGIN CREATEDB PASSWORD 'netboxpassword'; CREATE DATABASE netboxdb OWNER netbox;
Sobald die Datenbank und der Benutzer erstellt sind, überprüfe die Liste der Datenbanken und Benutzer auf PostgreSQL mit folgendem Befehl.
\l \du
Du siehst unten, dass die Datenbank„netboxdb“ und der Benutzer„netbox“ erstellt wurden.
Gib„quit“ ein, um den PostgreSQL-Server zu verlassen.
Herunterladen und Konfigurieren von Netbox
Jetzt, da die PostgreSQL-Datenbank fertig ist, lädst du Netbox herunter und installierst es auf deinem Ubuntu-Rechner. Du richtest den Domainnamen, den geheimen Schlüssel und die Datenbank für Netbox ein.
Führe zunächst den folgenden Befehl aus, um einen neuen Benutzer „netbox“ auf deinem Ubuntu-Rechner anzulegen.
sudo useradd -r -d /opt/netbox -s /usr/sbin/nologin netbox
Führe den folgenden Befehl aus, um den Netbox-Quellcode mit dem Befehl„git“ herunterzuladen, und ändere die Eigentumsrechte auf den Benutzer„netbox„.
sudo git clone -b master --depth 1 https://github.com/netbox-community/netbox.git /opt/netbox sudo chown -R netbox:netbox /opt/netbox
Wechsle in das Verzeichnis„/opt/netbox/netbox/netbox“ und führe die Datei„generate_secret_key.py“ aus. Kopiere den geheimen Schlüssel auf deinen Zettel.
cd /opt/netbox/netbox/netbox sudo -u netbox python3 ../generate_secret_key.py
Kopiere anschließend die Datei„configuration.py“ und ändere sie mit dem Editor„nano„.
sudo -u netbox cp configuration_example.py configuration.py sudo -u netbox nano configuration.py
Füge deine lokale IP-Adresse und deinen Domainnamen zu den„ALLOWED_HOSTS“ hinzu.
ALLOWED_HOSTS = ['netbox.howtoforge.local', '192.168.10.60']
Gib den Namen, den Benutzer und das Passwort deiner PostgreSQL-Datenbank in den Abschnitt„DATABASE“ ein.
# database configuration DATABASE = { 'NAME': 'netboxdb', # Database name 'USER': 'netbox', # PostgreSQL username 'PASSWORD': 'netboxpassword', # PostgreSQL password 'HOST': 'localhost', # Database server 'PORT': '', # Database port (leave blank for default) 'CONN_MAX_AGE': 300, # Max database connection age (seconds) }
Füge deinen geheimen Schlüssel in den Abschnitt„SECRET_KEY“ ein.
SECRET_KEY = '98%D9uh8S%)T0QhQ@Z3zYf%Hik^CqWJ)Uwz%0J7TZUztmNiitG'
Speichere die Datei und beende den Editor, wenn du fertig bist.
Netbox migrieren und Administrator einrichten
Jetzt, wo du Netbox mit dem PostgreSQL-Server konfiguriert hast, kannst du die Datenbank migrieren und einen Administrator-Benutzer für die Netbox-Installation einrichten.
Führe das Skript„upgrade.sh“ mit dem unten stehenden Befehl aus. Es erstellt eine Python-Umgebung, installiert die Abhängigkeiten für Netbox, migriert die Netbox-Datenbank, stellt eine Verbindung zu Redis her und generiert anschließend statische Dateien.
sudo -u netbox /opt/netbox/upgrade.sh
Unten siehst du die Datenbankmigration für Netbox.
Und unten, wenn„manage.py“ statische Dateien erzeugt.
Nachdem der Prozess abgeschlossen ist, musst du mit dem Skript„manage.py“ einen neuen Admin-Benutzer für Netbox erstellen.
Führe den folgenden Befehl aus, um die virtuelle Netbox-Umgebung zu aktivieren. Nach der Aktivierung sieht deine Shell wie folgt aus: „(venv) user@hostname„.
source /opt/netbox/venv/bin/activate
Gehe in das Verzeichnis„/opt/netbox/netbox“ und führe das Skript„manage.py“ wie folgt aus:
cd /opt/netbox/netbox python3 manage.py createsuperuser
Gib deinen Benutzernamen, deine E-Mail-Adresse und dein Passwort für den Netbox-Administrator ein.
Wenn du fertig bist, führe den Befehl„deaktivieren“ aus, um die virtuelle Netbox-Umgebung zu verlassen.
Netbox als Dienst ausführen
In diesem Abschnitt kopierst du die Netbox-Konfigurationen, die für den Betrieb von Netbox als systemd-Dienst benötigt werden. Du musst sicherstellen, dass Netbox unter Gunicorn läuft, und dann die Netbox-Dienstdateien in das Verzeichnis„/etc/systemd/system“ kopieren.
Kopiere zunächst das Skript„gunicorn.py“ in das Verzeichnis„/opt/netbox„. Dieses Skript enthält die Konfiguration für Netbox, damit es unter dem Python WSGI Server läuft.
sudo -u netbox cp /opt/netbox/contrib/gunicorn.py /opt/netbox/gunicorn.py
Führe nun den folgenden Befehl aus, um die Servicedateien für Netbox in das Verzeichnis„/etc/systemd/system“ zu kopieren und den systemd-Manager neu zu laden.
sudo cp -v /opt/netbox/contrib/*.service /etc/systemd/system/ sudo systemctl daemon-reload
Sobald systemd neu geladen ist, führe den Befehl„systemctl“ aus, um die Netbox-Dienste zu starten und zu aktivieren.
sudo systemctl enable --now netbox netbox-rq netbox-housekeeping
Überprüfe abschließend die Netbox-Dienste mit dem folgenden Befehl, um sicherzustellen, dass sie laufen.
sudo systemctl status netbox netbox-rq netbox-housekeeping
In der folgenden Ausgabe kannst du sehen, dass der Dienst„netbox“ läuft und aktiviert ist.
Für den Dienst„netbox-rq“ solltest du eine Ausgabe wie diese erhalten:
Zuletzt wird der Dienst„netbox-housekeeping“ mit dem Status„dead“ angezeigt, da er als Timer läuft.
Apache als Reverse Proxy konfigurieren
Zu diesem Zeitpunkt läuft Netbox im Hintergrund als Dienst unter dem Python WSGI Server. Um ihn von außen zugänglich zu machen, musst du Apache als Reverse Proxy konfigurieren. Zuvor musst du außerdem SSL-Zertifikate erstellen, um die Netbox-Installation zu sichern.
Führe zunächst den folgenden Befehl aus, um den Dienst„apache2“ zu beenden.
sudo systemctl stop apache2
Erstelle nun SSL-Zertifikate von Letsencrypt mit dem unten stehenden Befehl„certbot„. Achte darauf, dass du den Domänennamen und die E-Mail-Adresse mit deinen Daten änderst.
sudo certbot certonly --standalone --preferred-challenges http -d netbox.howtoforge.local
Nachdem der Vorgang abgeschlossen ist, sind deine SSL-Zertifikate im Verzeichnis„/etc/letsencrypt/live/domain.com“ verfügbar.
Als Nächstes kopierst du die Apache-Konfiguration für Netbox in die Datei„/etc/apache2/sites-available/netbox.conf“ und änderst sie mit dem Editor„nano„.
sudo cp /opt/netbox/contrib/apache.conf /etc/apache2/sites-available/netbox.conf sudo nano /etc/apache2/sites-available/netbox.conf
Ersetze den Domainnamen in der Option„ServerName“ und ändere den Pfad deiner SSL-Zertifikate.
<VirtualHost *:80> # CHANGE THIS TO YOUR SERVER'S NAME ServerName netbox.howtoforge.local ... </VirtualHost> <VirtualHost *:443> ProxyPreserveHost On # CHANGE THIS TO YOUR SERVER'S NAME ServerName netbox.howtoforge.local SSLEngine on SSLCertificateFile /etc/letsencrypt/live/netbox.howtoforge.local/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/netbox.howtoforge.local/privkey.pem ... </VirtualHost>
Speichere die Datei und beende den Editor, wenn du fertig bist.
Führe nun den folgenden Befehl aus, um die Apache-Module und die virtuelle Hostdatei„netbox.conf“ zu aktivieren.
sudo a2enmod ssl proxy proxy_http headers rewrite sudo a2ensite netbox.conf
Nachdem der virtuelle Host aktiviert ist, führe den folgenden Befehl aus, um Apache neu zu starten und deine Änderungen zu übernehmen. Damit sollte deine Netbox-Installation unter dem Apache-Reverse-Proxy mit aktiviertem HTTPS laufen.
sudo systemctl restart apache2
Rufe schließlich mit deinem Webbrowser https://netbox.howtoforge.local/ auf und du wirst zur Netbox-Anmeldeseite weitergeleitet. Gib deinen Admin-Benutzernamen und dein Passwort ein und klicke dann auf Anmelden.
Wenn du über die richtigen Admin-Zugangsdaten verfügst, siehst du das folgende Netbox-Dashboard.
Klicke auf das Menü Admin > System, um Informationen über deine Netbox-Installation zu erhalten. In der folgenden Ausgabe kannst du sehen, dass Netbox v4.1.7 mit der PostgreSQL-Datenbank installiert ist.
Fazit
Herzlichen Glückwunsch! Du hast die Installation von Netbox IRM auf dem Ubuntu 24.04 Server abgeschlossen. Du hast Netbox mit PostgreSQL als Datenbankserver und Apache als Reverse Proxy zum Laufen gebracht. Außerdem hast du Netbox mit HTTPS über Certbot abgesichert.