GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer l'outil de documentation et de gestion du réseau NetBox sur Ubuntu 20.04 LTS

Netbox est un outil gratuit et puissant de gestion d'adresse IP (IPAM) et d'infrastructure de centre de données (DCIM). Il est utilisé pour stocker des informations sur vos réseaux, machines virtuelles, inventaires et bien d'autres. Il a été initialement développé par l'équipe d'ingénierie réseau de DigitalOcean. Cet outil est écrit dans le framework Django Python et s'appuie sur la base de données PostgreSQL. Son objectif est de fonctionner comme une source de vérité spécifique à un domaine pour les opérations du réseau.

Dans ce tutoriel, nous expliquerons comment installer Netbox avec Nginx en tant que proxy inverse sur Ubuntu 20.04.

Prérequis

  • Un serveur exécutant Ubuntu 20.04.
  • Un mot de passe root est configuré sur votre serveur.

Mise en route

Avant de commencer, vous devrez installer certaines dépendances requises par Netbox. Vous pouvez tous les installer en exécutant la commande suivante :

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

Une fois tous les packages installés, vous pouvez passer à l'étape suivante.

Installer et configurer la base de données PostgreSQL

Netbox s'appuie sur la base de données PostgreSQL pour le stockage des données. Vous pouvez l'installer avec la commande suivante :

apt-get install postgresql postgresql-contrib -y

Une fois PostgreSQL installé, connectez-vous à PostgreSQL avec la commande suivante :

su - postgres
[email protected]:~$ psql

Vous devriez obtenir le résultat suivant :

psql (12.2 (Ubuntu 12.2-4))
Type "help" for help.

Ensuite, créez une base de données et un utilisateur pour Netbox avec la commande suivante :

postgres=# CREATE DATABASE netbox;
postgres=# CREATE USER netbox WITH PASSWORD 'password';

Ensuite, accordez tous les privilèges à la base de données Netbox avec la commande suivante :

postgres=# GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;

Ensuite, quittez le shell PostgreSQL avec la commande suivante :

postgres=# exit
[email protected]:~$ exit

Installer et configurer NetBox

Tout d'abord, changez le répertoire en /opt et téléchargez la dernière version de Netbox à partir du référentiel Git Hub à l'aide de la commande suivante :

cd /opt/
git clone -b master https://github.com/digitalocean/netbox.git

Ensuite, créez un lien symbolique du binaire Python avec la commande suivante :

ln -s /usr/bin/python3 /usr/bin/python

Ensuite, changez le répertoire en /opt/netbox/netbox/ et générez Django SECRET Key en exécutant la commande suivante :

cd /opt/netbox/netbox/
./generate_secret_key.py

Vous devriez obtenir le résultat suivant :

[email protected])eTDpo(k^f4Sm9bariUnK0syCPMGEIjW6XV_8l5xhB7z

Ensuite, changez le répertoire en netbox et renommez l'exemple de fichier de configuration :

cd netbox
mv configuration.example.py configuration.py

Ensuite, modifiez le fichier de configuration Netbox et définissez votre base de données, votre clé secrète et vos hôtes autorisés :

nano configuration.py

Effectuez les modifications suivantes :

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 = '[email protected])eTDpo(k^f4Sm9bariUnK0syCPMGEIjW6XV_8l5xhB7z'

Enregistrez et fermez le fichier puis installez toutes les dépendances Python avec la commande suivante :

pip3 install -r /opt/netbox/requirements.txt

Ensuite, migrez la base de données avec la commande suivante :

cd /opt/netbox/netbox/
python3 manage.py migrate

Ensuite, créez un utilisateur administratif Netbox avec la commande suivante :

python3 manage.py createsuperuser

Il vous sera demandé de fournir un nom d'utilisateur et un mot de passe comme indiqué ci-dessous :

Username (leave blank to use 'root'): netboxadmin
Email address: [email protected]
Password: 
Password (again): 
Superuser created successfully.

Ensuite, collectez le fichier statique avec la commande suivante :

python3 manage.py collectstatic

Vous devriez voir le résultat suivant :

976 static files copied to '/opt/netbox/netbox/static'.

Installer et configurer Gunicorn

Netbox est une application basée sur Django. Vous devrez donc installer Gunicorn sur votre système. Vous pouvez l'installer en exécutant la commande suivante :

pip3 install gunicorn

Après avoir installé Gunicorn, créez un nouveau fichier de configuration Gunicorn pour Netbox avec la commande suivante :

nano /opt/netbox/gunicorn_config.py

Ajoutez les lignes suivantes :

command = '/usr/local/bin/gunicorn'
pythonpath = '/opt/netbox/netbox'
bind = 'your-server-ip:8001'
workers = 3
user = 'www-data'

Enregistrez et fermez le fichier lorsque vous avez terminé.

Installer et configurer le superviseur

Supervisor est un système client/serveur qui vous permet de surveiller et de contrôler le service NetBox. Vous pouvez créer un nouveau fichier de configuration de superviseur pour Netbox avec la commande suivante :

nano /etc/supervisor/conf.d/netbox.conf

Ajoutez les lignes suivantes :

[program:netbox]
command = gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
directory = /opt/netbox/netbox/
user = www-data

Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, redémarrez le service Superviseur avec la commande suivante :

systemctl restart supervisor

Vous pouvez également vérifier l'état du service Superviseur à l'aide de la commande suivante :

systemctl status supervisor

Vous devriez obtenir le résultat suivant :

? 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

Configurer Nginx pour NetBox

C'est une bonne idée de configurer Nginx en tant que proxy inverse pour accéder à la Netbox au port 80. Vous pouvez créer une nouvelle configuration d'hôte virtuel Nginx à l'aide de la commande suivante :

nano /etc/nginx/sites-available/netbox.conf

Ajoutez les lignes suivantes :

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;
    }
}

Enregistrez et fermez le fichier. Ensuite, créez un lien symbolique vers le répertoire /etc/nginx/sites-enabled/ :

ln -s /etc/nginx/sites-available/netbox.conf /etc/nginx/sites-enabled/

Ensuite, vérifiez Nginx pour toute erreur de syntaxe avec la commande suivante :

nginx -t

Si tout va bien, vous devriez obtenir le résultat suivant :

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Enfin, redémarrez le service Nginx pour mettre en œuvre les modifications.

systemctl restart nginx

Vous pouvez également vérifier le Nginx avec la commande suivante :

systemctl status nginx

Vous devriez obtenir le résultat suivant :

? 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.

À ce stade, le serveur Web Nginx est configuré pour servir Netbox sur le port 80. Vous pouvez maintenant accéder à l'interface Web Netbox.

Accéder à l'interface Web Netbox

Ouvrez votre navigateur Web et visitez l'URL http://your-server-ip. Vous serez redirigé vers la page suivante :

Cliquez sur le Journal dans bouton. Vous devriez voir la page de connexion Netbox dans l'écran suivant :

Indiquez votre nom d'utilisateur et votre mot de passe d'administrateur Netbox, puis cliquez sur connexion bouton. Vous devriez voir le tableau de bord par défaut de la Netbox sur la page suivante :

Conclusion

Dans ce guide, vous avez appris à installer Netbox sur Ubuntu 20.04 avec Nginx. Vous pouvez maintenant commencer à documenter votre infrastructure réseau. Pour plus d'informations, consultez la documentation officielle de Netbox. N'hésitez pas à me demander si vous avez des questions.


Ubuntu
  1. Comment installer LibreOffice 6.0 sur Ubuntu 16.04 LTS et supérieur

  2. Comment installer et utiliser iostat sur Ubuntu 16.04 LTS

  3. Comment installer Libreoffice 4.3 sur Ubuntu 12.04 et 14.04 LTS

  4. Comment installer Libreoffice 4.4 sur Ubuntu 15.04 et 14.04 LTS

  5. Comment installer Wireshark sur Ubuntu 16.04 LTS

Comment installer PHP 5.6, PHP 8.0 et PHP 8.1 sur Ubuntu 20.04 LTS

Comment installer uTorrent dans Ubuntu 16.04 LTS et Ubuntu 17.10

Comment installer et utiliser SQLite sur Ubuntu 20.04 LTS Focal Fossa

Comment installer OwnCloud sur Ubuntu 16.04 LTS

Comment installer Observium sur Ubuntu 16.04 LTS

Comment installer PostgreSQL sur Ubuntu 18.04 LTS