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.

deps installieren

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.

apache2 prüfen

Ü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).

check service postgresql

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.

Datenbanken auflisten

Benutzer auflisten

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

Netbox konfigurieren

Unten siehst du die Datenbankmigration für Netbox.

migrieren

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.

statische Dateien

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.

Admin erstellen

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

starten und freigeben

Ü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.

netbox

Für den Dienst„netbox-rq“ solltest du eine Ausgabe wie diese erhalten:

netbox-rq

Zuletzt wird der Dienst„netbox-housekeeping“ mit dem Status„dead“ angezeigt, da er als Timer läuft.

netbox-housekeeping

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.

Anmeldung

Wenn du über die richtigen Admin-Zugangsdaten verfügst, siehst du das folgende Netbox-Dashboard.

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.

Dashboard

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.

Das könnte dich auch interessieren …