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:

Netbox Interface

Klicken Sie nun auf die Schaltfläche Anmelden in der rechten oberen Ecke. Du solltest die folgende Seite sehen:

Netbox Login

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:

NetBox Dashboard

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.

Das könnte dich auch interessieren …