Wie installiert man das NetBox Network Documentation and Management Tool auf Ubuntu 20.04 LTS
Netbox ist ein kostenloses und leistungsstarkes Tool zur Verwaltung von IP-Adressen (IPAM) und Rechenzentrumsinfrastrukturen (DCIM). Es wird zur Speicherung von Informationen über Ihre Netzwerke, VMs, Inventare und vieles mehr verwendet. Es wurde ursprünglich vom Netzwerk-Engineering-Team bei DigitalOcean entwickelt. Dieses Tool ist im Django-Python-Framework geschrieben und stützt sich auf die PostgreSQL-Datenbank. Sein Ziel ist es, als eine domänenspezifische Quelle der Wahrheit für Netzwerkoperationen zu fungieren.
In diesem Tutorial werden wir erklären, wie Netbox mit Nginx als Reverse-Proxy unter Ubuntu 20.04 installiert wird.
Voraussetzungen
- Ein Server, auf dem Ubuntu 20.04 läuft.
- Ein Root-Passwort ist auf Ihrem Server konfiguriert.
Erste Schritte
Bevor Sie beginnen, müssen Sie einige von Netbox benötigte Abhängigkeiten installieren. Sie können sie alle installieren, indem Sie den folgenden Befehl ausführen:
apt-get install nginx git gcc supervisor python3 python3-dev python3-pip python3-setuptools build-essential libxml2-dev libxslt1-dev libffi-dev graphviz libpq-dev libssl-dev zlib1g-dev -y
Wenn alle Pakete installiert sind, können Sie mit dem nächsten Schritt fortfahren.
Installieren und Konfigurieren der PostgreSQL-Datenbank
Netbox verlässt sich bei der Datenspeicherung auf die PostgreSQL-Datenbank. Sie können es mit dem folgenden Befehl installieren:
apt-get install postgresql postgresql-contrib -y
Sobald der PostgreSQL installiert ist, melden Sie sich mit folgendem Befehl am PostgreSQL an:
su - postgres postgres@ubuntu2004:~$ psql
Sie sollten die folgende Ausgabe erhalten:
psql (12.2 (Ubuntu 12.2-4)) Type "help" for help.
Erstellen Sie als nächstes eine Datenbank und einen Benutzer für Netbox mit dem folgenden Befehl:
postgres=# CREATE DATABASE netbox; postgres=# CREATE USER netbox WITH PASSWORD 'password';
Gewähren Sie anschließend alle Privilegien für die Netbox-Datenbank mit dem folgenden Befehl:
postgres=# GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;
Beenden Sie anschließend die PostgreSQL-Shell mit folgendem Befehl:
postgres=# exit postgres@ubuntu2004:~$ exit
Installieren und Konfigurieren von NetBox
Ändern Sie zunächst das Verzeichnis in das Verzeichnis /opt und laden Sie die neueste Version von Netbox aus dem Git-Hub-Repository mit folgendem Befehl herunter:
cd /opt/ git clone -b master https://github.com/digitalocean/netbox.git
Als nächstes erstellen Sie einen symbolischen Link von Python-Binärdateien mit dem folgenden Befehl:
ln -s /usr/bin/python3 /usr/bin/python
Als nächstes ändern Sie das Verzeichnis in /opt/netbox/netbox/ und generieren Django SECRET Key, indem Sie den folgenden Befehl ausführen:
cd /opt/netbox/netbox/ ./generate_secret_key.py
Sie sollten die folgende Ausgabe erhalten:
wcq@L2)eTDpo(k^f4Sm9bariUnK0syCPMGEIjW6XV_8l5xhB7z
Als nächstes ändern Sie das Verzeichnis in Netbox und benennen die Beispielkonfigurationsdatei um:
cd netbox mv configuration.example.py configuration.py
Als nächstes bearbeiten Sie die Netbox-Konfigurationsdatei und definieren Ihre Datenbank, Ihren geheimen Schlüssel und die zulässigen Hosts:
nano configuration.py
Nehmen Sie die folgenden Änderungen vor:
ALLOWED_HOSTS = ['your-server-ip'] # PostgreSQL database configuration. See the Django documentation for a complete list of available parameters: # https://docs.djangoproject.com/en/stable/ref/settings/#databases DATABASE = { 'NAME': 'netbox', # Database name 'USER': 'netbox', # PostgreSQL username 'PASSWORD': 'password', # PostgreSQL password 'HOST': 'localhost', # Database server 'PORT': '', # Database port (leave blank for default) 'CONN_MAX_AGE': 300, # Max database connection age } SECRET_KEY = 'wcq@L2)eTDpo(k^f4Sm9bariUnK0syCPMGEIjW6XV_8l5xhB7z'
Speichern und schließen Sie die Datei und installieren Sie dann alle Python-Abhängigkeiten mit dem folgenden Befehl:
pip3 install -r /opt/netbox/requirements.txt
Als nächstes migrieren Sie die Datenbank mit dem folgenden Befehl:
cd /opt/netbox/netbox/ python3 manage.py migrate
Erstellen Sie anschließend einen administrativen Netbox-Benutzer mit folgendem Befehl:
python3 manage.py createsuperuser
Sie werden gebeten, Benutzername und Passwort wie unten gezeigt anzugeben:
Username (leave blank to use 'root'): netboxadmin Email address: hitjethva@gmail.com Password: Password (again): Superuser created successfully.
Als nächstes sammeln Sie die statische Datei mit folgendem Befehl:
python3 manage.py collectstatic
Sie sollten die folgende Ausgabe sehen:
976 static files copied to '/opt/netbox/netbox/static'.
Installieren und Konfigurieren von Gunicorn
Netbox ist eine Django-basierte Anwendung. Sie müssen also Gunicorn in Ihrem System installieren. Sie können es installieren, indem Sie den folgenden Befehl ausführen:
pip3 install gunicorn
Erstellen Sie nach der Installation von Gunicorn eine neue Gunicorn-Konfigurationsdatei für Netbox mit dem folgenden Befehl:
nano /opt/netbox/gunicorn_config.py
Fügen Sie die folgenden Zeilen hinzu:
command = '/usr/local/bin/gunicorn' pythonpath = '/opt/netbox/netbox' bind = 'your-server-ip:8001' workers = 3 user = 'www-data'
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Installieren und Konfigurieren des Supervisors
Supervisor ist ein Client/Server-System, mit dem Sie den NetBox-Dienst überwachen und steuern können. Mit dem folgenden Befehl können Sie eine neue Supervisor-Konfigurationsdatei für Netbox erstellen:
nano /etc/supervisor/conf.d/netbox.conf
Fügen Sie die folgenden Zeilen hinzu:
[program:netbox] command = gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi directory = /opt/netbox/netbox/ user = www-data
Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann den Supervisor-Dienst mit dem folgenden Befehl neu:
systemctl restart supervisor
Sie können auch den Status des Supervisor-Dienstes mit folgendem Befehl verifizieren:
systemctl status supervisor
Sie sollten die folgende Ausgabe erhalten:
? supervisor.service - Supervisor process control system for UNIX Loaded: loaded (/lib/systemd/system/supervisor.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2020-05-30 05:49:08 UTC; 14s ago Docs: http://supervisord.org Main PID: 550606 (supervisord) Tasks: 5 (limit: 4691) Memory: 184.3M CGroup: /system.slice/supervisor.service ??550606 /usr/bin/python3 /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf ??550626 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi ??550628 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi ??550629 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi ??550630 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi May 30 05:49:08 ubuntu2004 systemd[1]: Started Supervisor process control system for UNIX. May 30 05:49:08 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:08,664 CRIT Supervisor is running as root. Privileges were not dropped becau> May 30 05:49:08 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:08,664 INFO Included extra file "/etc/supervisor/conf.d/netbox.conf" during p> May 30 05:49:08 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:08,671 INFO RPC interface 'supervisor' initialized May 30 05:49:08 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:08,671 CRIT Server 'unix_http_server' running without any HTTP authentication> May 30 05:49:08 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:08,672 INFO supervisord started with pid 550606 May 30 05:49:09 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:09,676 INFO spawned: 'netbox' with pid 550626 May 30 05:49:11 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:11,060 INFO success: netbox entered RUNNING state, process has stayed up for
Konfigurieren Sie Nginx für NetBox
Es ist eine gute Idee, Nginx als Reverse-Proxy zu konfigurieren, um auf die Netbox auf Port 80 zuzugreifen. Sie können eine neue Konfiguration des virtuellen Nginx-Hosts mit folgendem Befehl erstellen:
nano /etc/nginx/sites-available/netbox.conf
Fügen Sie die folgenden Zeilen hinzu:
server { listen 80; server_name your-server-ip; client_max_body_size 25m; location /static/ { alias /opt/netbox/netbox/static/; } location / { proxy_pass http://your-server-ip:8001; } }
Speichern und schließen Sie die Datei. Erstellen Sie dann einen symbolischen Link auf das Verzeichnis /etc/nginx/sites-enabled/:
ln -s /etc/nginx/sites-available/netbox.conf /etc/nginx/sites-enabled/
Überprüfen Sie dann Nginx mit folgendem Befehl auf Syntaxfehler:
nginx -t
Wenn alles in Ordnung ist, sollten Sie die folgende Ausgabe erhalten:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Starten Sie schließlich den Nginx-Dienst neu, um die Änderungen zu implementieren.
systemctl restart nginx
Sie können die Nginx auch mit dem folgenden Befehl überprüfen:
systemctl status nginx
Sie sollten die folgende Ausgabe erhalten:
? nginx.service - The nginx HTTP and reverse proxy server Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled) Active: active (running) since Sat 2020-05-30 22:28:13 EST; 4min 14s ago Process: 984 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) Process: 982 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) Process: 980 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) Main PID: 985 (nginx) Tasks: 3 (limit: 25028) Memory: 5.5M CGroup: /system.slice/nginx.service ??985 nginx: master process /usr/sbin/nginx ??986 nginx: worker process ??987 nginx: worker process May 30 21:28:12 ubuntu2004 systemd[1]: Starting The nginx HTTP and reverse proxy server... Mar 30 21:28:12 ubuntu2004 nginx[982]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok Mar 30 21:28:12 ubuntu2004 nginx[982]: nginx: configuration file /etc/nginx/nginx.conf test is successful Mar 30 21:28:13 ubuntu2004 systemd[1]: Started The nginx HTTP and reverse proxy server.
An diesem Punkt ist der Nginx-Webserver so konfiguriert, dass er Netbox auf Port 80 bedient. Sie können nun auf die Webschnittstelle von Netbox zugreifen.
Zugriff auf die Webschnittstelle von Netbox
Öffnen Sie Ihren Webbrowser und besuchen Sie die URL http://your-server-ip. Sie werden auf die folgende Seite umgeleitet:
Klicken Sie auf die Schaltfläche Anmelden. Auf dem folgenden Bildschirm sollten Sie die Netbox-Anmeldeseite sehen:
Geben Sie Ihren Netbox-Administrator-Benutzernamen und Ihr Passwort ein und klicken Sie auf die Anmeldeschaltfläche. Auf der folgenden Seite sollten Sie das Standard-Dashboard von Netbox sehen:
Schlussfolgerung
In diesem Handbuch erfahren Sie, wie Sie Netbox unter Ubuntu 20.04 mit Nginx installieren. Sie können nun damit beginnen, Ihre Netzwerkinfrastruktur zu dokumentieren. Weitere Informationen finden Sie in der offiziellen Dokumentation zu Netbox. Sie können mich gebührenfrei fragen, wenn Sie Fragen haben.