Die NetBox ist eine OpenSourceSoftware für die Dokumentation und Verwaltung von Netzwerkinfrastrukturen. Sie wird von Netzwerkadministratoren und IT-Teams eingesetzt und ermöglicht die zentrale Planung und Dokumentation von:
1.Ip Adressen (IP-Adressmanagement -IPAM): Verwaltung und Dokumentation von IP-Adressen, Subnetzen, VLANs und Routing-Daten.
2.Infrastruktur (Datacenter Infrastructure Management -DCIM): Dokumentation von physischer Infrastruktur, z.B. Racks, Servern, Clients, sonstigen Geräten und Verkabelungen.
3.Geräte und Verbindungen: Dokumentation und Verwaltung von Geräten und ihren Verbindungen untereinander.
4.Standort- und Regionsverwaltung: Organisieren von Netzwerkinfrastruktur in geografischen und logischen Ebenen, z.B. Standorte, Räume, et cetea
Die Netzbox verfügt über eine API-Schnittstelle hierüber lässt sie sich in andere Systeme integrieren und es lassen sich Automatisierungen umsetzen. Vor einiger Zeit hatte ich zu diesem Thema eine sehr gute Schulung im Linux Hotel besucht.
Der folgende Artikel beschreibt die Installation auf einem Debian 12.
Zuerst werden dafür die notwendigen Pakete installiert.
apt install apache2 postgresql postgresql-common libpq-dev redis-server git python3 python3-pip python3-venv python3-dev build-essential libxml2-dev libxslt1-dev libffi-dev libssl-dev zlib1g-dev postgresql sudo redis-server
Danach lege ich die postgresql Datenbank an
sudo -u postgres psql
CREATE DATABASE netbox;
CREATE USER netbox WITH PASSWORD 'gaQXbhC_aYA-E;n;3Snf_kMgCUKAipj';
ALTER DATABASE netbox OWNER TO netbox;
-- the next two commands are needed on PostgreSQL 15 and later
\connect netbox;
GRANT CREATE ON SCHEMA public TO netbox;
\q
Nun folgt das Installieren der Python Umgebung und der entsprechenden Abhängigkeiten
apt install -y python3 python3-pip python3-venv python3-dev build-essential libxml2-dev libxslt1-dev libffi-dev libpq-dev libssl-dev zlib1g-dev
gefolgt von dem Herunterladen des eigentlichen Programmes
wget -c "https://github.com/netbox-community/netbox/archive/refs/tags/v4.0.8.tar.gz"
entpacken
tar xvzf v4.0.8.tar.gz -C /opt/
Dnach noch schnell den Benutzer anlegen, die Dateirechte anpassen und eine Config-Datei vorbereiten
ln -sf /opt/netbox-4.0.8/ /opt/netbox
sudo adduser --system --group netbox
sudo chown --recursive netbox /opt/netbox/netbox/media/
sudo chown --recursive netbox /opt/netbox/netbox/reports/
sudo chown --recursive netbox /opt/netbox/netbox/scripts/
cd /opt/netbox/netbox/netbox/
cp configuration_example.py configuration.py
/opt/netbox/netbox/netbox# nano configuration.py
In die Datei /opt/netbox/netbox/netbox# nano configuration.py trägt man danach folgende Werte ein:
ALLOWED_HOSTS = [‚*‘]
DATABASE = {
‚ENGINE‘: ‚django.db.backends.postgresql‘, # Database engine
‚NAME‘: ’netbox‘, # Database name
‚USER‘: ’netbox‘, # PostgreSQL username
‚PASSWORD‘: ‚gaQXbhC_aYA-E;n;3Snf_kMgCUKAipj‘, # PostgreSQL password
‚HOST‘: ‚localhost‘, # Database server
‚PORT‘: “, # Database port (leave blank for default)
‚CONN_MAX_AGE‘: 300, # Max database connection age
}
Danach einmal das Upgraadeskript drüberlaufen lassen
/opt/netbox/upgrade.sh
Zum Anlegen des ersten Benutzers der Netbox wechselt man die die Python Umgebung und führt folgende Schritte aus
source /opt/netbox/venv/bin/activate
cd /opt/netbox/netbox
python3 manage.py createsuperuser
Username: patrick
Email address: patrick@bloy.at
Password:
Password (again):
Superuser created successfully.
Danach kann man entweder den Dienst von Hand starten
cp /opt/netbox/contrib/gunicorn.py /opt/netbox/gunicorn.py
Um die Netbox als Systemdienst einzurichten kopiert man die Beispieldatei an die entsprechende Stelle und aktiviert sie.
cp -v /opt/netbox/contrib/*.service /etc/systemd/system/
systemctl enable --now netbox netbox-rq
systemctl status netbox.service
Danach setze ich noch einen nginx (oder apache) als Reversproxy vor den gunicorn Werbserver. Egal ob Apache oder nginx, können später noch die Aufgabe bekommen die Seiten zu verschlüsseln und die Let’s Encrypt-Zertifikate zu verwalten (in Kooperation mit certbot).
apt install -y nginx
cp /opt/netbox/contrib/nginx.conf /etc/nginx/sites-available/netbox
zu guter letzt kommt noch der Cronjob
sudo ln -s /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-housekeeping
Auch kann man das System via
python3 manage.py runserver 0.0.0.0:8000 --insecure
einmal zum Test auf Port 8000 starten (wo es jedoch nach obigen Schritten bereits laufen sollte).
Quelle: https://netboxlabs.com/docs/netbox/en/stable/installation/3-netbox/