Zum Inhalt springen

Netbox

  • von

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/

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert