So installieren Sie das NetBox Network Documentation and Management Tool auf Ubuntu 18.04 LTS
NetBox ist eine kostenlose und Open-Source-Webanwendungssoftware, die zur Verwaltung und Dokumentation von Computernetzwerken verwendet werden kann. Es wurde speziell für die Verwaltung von IP-Adressen und Rechenzentren über einen Webbrowser entwickelt. NetBox ist im Django Python Framework geschrieben und verwendet PostgreSQL für die Datenbank. Mit NetBox können Sie virtuelle Maschinen und Cluster, Datenleitungen, Netzwerk, Konsolen und Stromverbindungen einfach von der zentralen Stelle aus verwalten und dokumentieren.
In diesem Tutorial wird erklärt, wie man NetBox auf dem Ubuntu 18.04 Server installiert.
Anforderungen
- Ein Server mit Ubuntu 18.04.
- Auf deinem Server wird ein Root-Passwort eingerichtet.
Erste Schritte
Aktualisieren Sie zunächst das Paket Ihres Systems auf die neueste Version mit dem folgenden Befehl:
apt-get update -y apt-get upgrade -y
Sobald alle Pakete aktualisiert sind, starten Sie Ihr System neu, um alle Konfigurationsänderungen zu übernehmen.
Als nächstes müssen Sie die erforderlichen Abhängigkeiten installieren, um NetBox auszuführen. Du kannst sie alle mit dem folgenden Befehl installieren:
apt-get install wget ca-certificates nginx supervisor git gcc python3 python3-dev python3-pip python3-setuptools build-essential libxml2-dev libxslt1-dev libffi-dev graphviz libpq-dev libssl-dev zlib1g-dev unzip -y
Sobald alle Abhängigkeiten installiert sind, können Sie mit dem nächsten Schritt fortfahren.
Installation und Konfiguration von PostgreSQL
Als nächstes müssen Sie PostgreSQL auf Ihrem Server installieren. Standardmäßig ist die neueste Version von PostgreSQL nicht im Standard-Repository von Ubuntu 18.04 verfügbar. Sie müssen also das PostgreSQL-Repository zu Ihrem System hinzufügen.
Laden Sie zunächst den GPG-Schlüssel herunter und fügen Sie ihn mit dem folgenden Befehl hinzu:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
Als nächstes fügen Sie das Repository mit dem folgenden Befehl hinzu:
nano /etc/apt/sources.list.d/postgres.list
Füge die folgende Zeile hinzu:
deb http://apt.postgresql.org/pub/repos/apt/ xanial-pgdg main
Speichern und schließen Sie die Datei. Aktualisieren Sie dann das Repository und installieren Sie PostgreSQL mit dem folgenden Befehl:
apt-get update -y apt-get install postgresql postgresql-contrib -y
Überprüfen Sie nach der Installation den Status von PostgreSQL mit dem folgenden Befehl:
systemctl status postgresql
Sie sollten die folgende Ausgabe sehen:
? postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Active: active (exited) since Wed 2019-08-07 07:00:51 UTC; 23s ago Main PID: 13552 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 1098) CGroup: /system.slice/postgresql.service Aug 07 07:00:50 hitesh systemd[1]: Starting PostgreSQL RDBMS... Aug 07 07:00:51 hitesh systemd[1]: Started PostgreSQL RDBMS.
Als nächstes müssen Sie eine Datenbank und einen Benutzer für NetBox erstellen. Melden Sie sich zunächst mit dem folgenden Befehl in der PostgreSQL-Shell an:
su - postgres postgres@hitesh:~$ psql
Output:
psql (11.4 (Ubuntu 11.4-1.pgdg18.04+1)) Type "help" for help.
Als nächstes erstellen Sie eine Datenbank und einen Benutzer für NetBox mit dem folgenden Befehl:
postgres=# CREATE DATABASE netbox; postgres=# CREATE USER netbox WITH PASSWORD 'password';
Als nächstes gewähren Sie der NetBox alle Berechtigungen mit dem folgenden Befehl:
postgres=# GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;
Beenden Sie schließlich die PostgreSQL-Shell mit dem folgenden Befehl:
postgres=#exit
Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
NetBox installieren und konfigurieren
Sie können die neueste Version von NetBox mit dem folgenden Befehl in das Verzeichnis /opt herunterladen:
cd /opt git clone -b master https://github.com/digitalocean/netbox.git
Als nächstes ändern Sie das Verzeichnis auf netbox und generieren Sie Django SECRET Key:
cd /opt/netbox/netbox/netbox/ ./generate_secret_key.py
Sie sollten den erzeugten Schlüssel in der folgenden Ausgabe sehen:
+XHR3o&7K6isFk^DLc2%rIqCanlE@zTB(jwN#tfGbV=O1hgMU$
Als nächstes benennen Sie die Standardkonfigurationsdatei mit dem folgenden Befehl um:
mv configuration.example.py configuration.py
Öffnen Sie anschließend die Konfigurationsdatei und definieren Sie Ihre Datenbankdetails und Ihren geheimen Schlüssel:
nano configuration.py
Nehmen Sie die folgenden Änderungen vor:
#Replace your-server-ip with your server IP address: # Example: ALLOWED_HOSTS = ['netbox.example.com', 'netbox.internal.local'] ALLOWED_HOSTS = ['your-server-ip'] # PostgreSQL database configuration. DATABASE = { 'NAME': 'netbox', # Database name 'USER': 'netbox', # PostgreSQL username 'PASSWORD': 'password', # PostgreSQL password 'HOST': 'localhost', # Database server 'PORT': '', # Database port (leave blank for default) } SECRET_KEY = '+XHR3o&7K6isFk^DLc2%rIqCanlE@zTB(jwN#tfGbV=O1hgMU$'
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Als nächstes installieren Sie alle von NetBox benötigten Abhängigkeiten mit dem folgenden Befehl:
pip3 install -r /opt/netbox/requirements.txt
Nach der Installation migrieren Sie die Datenbank mit dem folgenden Befehl:
cd /opt/netbox/netbox/ python3 manage.py migrate
Nach erfolgreicher Migration sollten Sie die folgende Ausgabe sehen:
Applying secrets.0004_tags... OK Applying secrets.0005_change_logging... OK Applying secrets.0006_custom_tag_models... OK Applying ipam.0021_vrf_ordering... OK Applying ipam.0022_tags... OK Applying ipam.0023_change_logging... OK Applying ipam.0024_vrf_allow_null_rd... OK Applying ipam.0025_custom_tag_models... OK Applying dcim.0067_device_type_remove_qualifiers... OK Applying dcim.0068_rack_new_fields... OK Applying dcim.0069_deprecate_nullablecharfield... OK Applying dcim.0070_custom_tag_models... OK Applying extras.0020_tag_data... OK Applying extras.0021_add_color_comments_changelog_to_tag... OK Applying dcim.0071_device_components_add_description... OK Applying dcim.0072_powerfeeds... OK Applying dcim.0073_interface_form_factor_to_type... OK Applying extras.0022_custom_links... OK Applying extras.0023_fix_tag_sequences... OK Applying ipam.0026_prefix_ordering_vrf_nulls_first... OK Applying ipam.0027_ipaddress_add_dns_name... OK Applying sessions.0001_initial... OK Applying taggit.0003_taggeditem_add_unique_index... OK Applying users.0001_api_tokens_squashed_0002_unicode_literals... OK Applying users.0003_token_permissions... OK
Als nächstes müssen Sie ein Administratorkonto für NetBox erstellen. Du kannst es mit dem folgenden Befehl tun:
python3 manage.py createsuperuser
Geben Sie Ihren Admin-Benutzernamen und Ihr Passwort ein und drücken Sie Enter, Sie sollten die folgende Ausgabe sehen:
Username (leave blank to use 'root'): netboxadmin Email address: admin@example.com Password: Password (again): Superuser created successfully.
Verschieben Sie nun die statischen Dateien und laden Sie die Anfangsdaten mit dem folgenden Befehl:
python3 manage.py collectstatic python3 manage.py loaddata initial_data
Gunicorn für NetBox installieren und konfigurieren
Als nächstes müssen Sie Gunicorn für NetBox installieren. Du kannst es mit dem Pip-Befehl installieren, wie unten gezeigt:
pip3 install gunicorn
Als nächstes erstellen Sie eine Gunicorn-Konfigurationsdatei für NetBox mit dem folgenden Befehl:
nano /opt/netbox/gunicorn_config.py
Füge 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.
Supervisor für Netbox konfigurieren
Als nächstes müssen Sie den Supervisor konfigurieren, um den NetBox-Dienst zu verwalten. Du kannst es mit dem folgenden Befehl tun:
nano /etc/supervisor/conf.d/netbox.conf
Füge 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, starten Sie den Supervisor-Dienst neu und aktivieren Sie ihn nach dem Systemneustart mit dem folgenden Befehl:
systemctl restart supervisor systemctl enable supervisor
Sie können den Supervisor-Dienst auch mit dem folgenden Befehl überprüfen:
systemctl status supervisor
Output:
? supervisor.service - Supervisor process control system for UNIX Loaded: loaded (/lib/systemd/system/supervisor.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2019-08-07 07:13:26 UTC; 8s ago Docs: http://supervisord.org Process: 15013 ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown (code=exited, status=0/SUCCESS) Main PID: 15015 (supervisord) Tasks: 5 (limit: 1098) CGroup: /system.slice/supervisor.service ??15015 /usr/bin/python /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf ??15037 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi ??15042 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi ??15043 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi ??15044 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi Aug 07 07:13:26 hitesh systemd[1]: Started Supervisor process control system for UNIX. Aug 07 07:13:27 hitesh supervisord[15015]: 2019-08-07 07:13:27,087 CRIT Supervisor running as root (no user in config file) Aug 07 07:13:27 hitesh supervisord[15015]: 2019-08-07 07:13:27,089 INFO Included extra file "/etc/supervisor/conf.d/netbox.conf" during parsing Aug 07 07:13:27 hitesh supervisord[15015]: 2019-08-07 07:13:27,117 INFO RPC interface 'supervisor' initialized Aug 07 07:13:27 hitesh supervisord[15015]: 2019-08-07 07:13:27,117 CRIT Server 'unix_http_server' running without any HTTP authentication check Aug 07 07:13:27 hitesh supervisord[15015]: 2019-08-07 07:13:27,118 INFO supervisord started with pid 15015 Aug 07 07:13:28 hitesh supervisord[15015]: 2019-08-07 07:13:28,123 INFO spawned: 'netbox' with pid 15037 Aug 07 07:13:29 hitesh supervisord[15015]: 2019-08-07 07:13:29,610 INFO success: netbox entered RUNNING state, process has st
Nginx für NetBox konfigurieren
Als nächstes müssen Sie Nginx so konfigurieren, dass es auf NetBox über Port 80 zugreift. Erstellen Sie dazu eine Konfigurationsdatei für den virtuellen Host mit dem folgenden Befehl:
nano /etc/nginx/sites-available/netbox
Füge die folgenden Zeilen hinzu:
server { listen 80; server_name your-domain-name; 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. Aktivieren Sie dann den virtuellen Host mit dem folgenden Befehl:
ln -s /etc/nginx/sites-available/netbox.conf /etc/nginx/sites-enabled/
Starten Sie schließlich den Nginx-Dienst neu, um alle Konfigurationsänderungen mit dem folgenden Befehl zu übernehmen:
systemctl restart nginx
Zugriff auf die NetBox Weboberfläche
NetBox ist jetzt installiert und konfiguriert, es ist Zeit, auf die NetBox-Weboberfläche zuzugreifen.
Öffnen Sie Ihren Webbrowser und geben Sie die URL http://your-domain.com ein. Sie werden auf die folgende Seite weitergeleitet:
Klicken Sie nun auf die Schaltfläche Anmelden in der rechten oberen Ecke. Du solltest die folgende Seite sehen:
Geben Sie nun Ihren Admin-Benutzernamen und Ihr Passwort ein und klicken Sie dann auf die Schaltfläche Anmelden. Sie sollten das NetBox Standard-Dashboard auf der folgenden Seite sehen:
Herzlichen Glückwunsch! Sie haben NetBox auf dem Ubuntu 18.04 Server erfolgreich installiert und konfiguriert. Sie können nun Ihr Netzwerk und Ihre IP-Adresse von der zentralen Stelle aus verwalten und dokumentieren. Zögere nicht, mich zu fragen, wenn du irgendwelche Fragen hast.