NetBox est un logiciel d'application Web gratuit et open source qui peut être utilisé pour gérer et documenter les réseaux informatiques. Il est spécialement conçu pour gérer l'adresse IP et l'infrastructure du centre de données via un navigateur Web. NetBox est écrit dans le framework Django Python et utilise PostgreSQL pour la base de données. Avec NetBox, vous pouvez facilement gérer et documenter les machines virtuelles et les clusters, les circuits de données, le réseau, la console et les connexions d'alimentation à partir d'un emplacement central.
Dans ce tutoriel, nous expliquerons comment installer NetBox sur le serveur Ubuntu 18.04.
Exigences
- Un serveur exécutant Ubuntu 18.04.
- Un mot de passe root est configuré sur votre serveur.
Mise en route
Tout d'abord, mettez à jour le package de votre système vers la dernière version avec la commande suivante :
apt-get update -y
apt-get upgrade -y
Une fois tous les packages mis à jour, redémarrez votre système pour appliquer toutes les modifications de configuration.
Ensuite, vous devrez installer les dépendances requises pour exécuter NetBox. Vous pouvez tous les installer avec la commande suivante :
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
Une fois toutes les dépendances installées, vous pouvez passer à l'étape suivante.
Installer et configurer PostgreSQL
Ensuite, vous devrez installer PostgreSQL sur votre serveur. Par défaut, la dernière version de PostgreSQL n'est pas disponible dans le référentiel par défaut d'Ubuntu 18.04. Vous devrez donc ajouter le référentiel PostgreSQL à votre système.
Tout d'abord, téléchargez et ajoutez la clé GPG avec la commande suivante :
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
Ensuite, ajoutez le référentiel avec la commande suivante :
nano /etc/apt/sources.list.d/postgres.list
Ajoutez la ligne suivante :
deb http://apt.postgresql.org/pub/repos/apt/ xanial-pgdg main
Enregistrez et fermez le fichier. Ensuite, mettez à jour le référentiel et installez PostgreSQL avec la commande suivante :
apt-get update -y
apt-get install postgresql postgresql-contrib -y
Une fois installé, vérifiez l'état de PostgreSQL avec la commande suivante :
systemctl status postgresql
Vous devriez voir le résultat suivant :
? 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.
Ensuite, vous devrez créer une base de données et un utilisateur pour NetBox. Tout d'abord, connectez-vous au shell PostgreSQL avec la commande suivante :
su - postgres
[email protected]:~$ psql
Sortie :
psql (11.4 (Ubuntu 11.4-1.pgdg18.04+1)) 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 NetBox avec la commande suivante :
postgres=# GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;
Enfin, quittez le shell PostgreSQL avec la commande suivante :
postgres=#exit
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Installer et configurer NetBox
Vous pouvez télécharger la dernière version de NetBox dans le répertoire /opt avec la commande suivante :
cd /opt
git clone -b master https://github.com/digitalocean/netbox.git
Ensuite, changez le répertoire en netbox et générez Django SECRET Key :
cd /opt/netbox/netbox/netbox/
./generate_secret_key.py
Vous devriez voir la clé générée dans la sortie suivante :
+XHR3o&7K6isFk^DLc2%[email protected](jwN#tfGbV=O1hgMU$
Ensuite, renommez le fichier de configuration par défaut avec la commande suivante :
mv configuration.example.py configuration.py
Ensuite, ouvrez le fichier de configuration et définissez les détails de votre base de données et votre clé secrète :
nano configuration.py
Effectuez les modifications suivantes :
#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%[email protected](jwN#tfGbV=O1hgMU$'
Enregistrez et fermez le fichier lorsque vous avez terminé.
Ensuite, installez toutes les dépendances requises par NetBox avec la commande suivante :
pip3 install -r /opt/netbox/requirements.txt
Une fois installé, migrez la base de données avec la commande suivante :
cd /opt/netbox/netbox/
python3 manage.py migrate
Une fois la migration réussie, vous devriez voir le résultat suivant :
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
Ensuite, vous devrez créer un compte administrateur pour NetBox. Vous pouvez le faire avec la commande suivante :
python3 manage.py createsuperuser
Fournissez votre nom d'utilisateur et votre mot de passe d'administrateur et appuyez sur Entrée, vous devriez voir le résultat suivant :
Username (leave blank to use 'root'): netboxadmin Email address: [email protected] Password: Password (again): Superuser created successfully.
Déplacez ensuite les fichiers statiques et chargez les données initiales avec la commande suivante :
python3 manage.py collectstatic
python3 manage.py loaddata initial_data
Installer et configurer Gunicorn pour NetBox
Ensuite, vous devrez installer Gunicorn pour NetBox. Vous pouvez l'installer avec la commande pip comme indiqué ci-dessous :
pip3 install gunicorn
Ensuite, créez un 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é.
Configurer le superviseur pour Netbox
Ensuite, vous devrez configurer Supervisor pour gérer le service NetBox. Vous pouvez le faire 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, puis redémarrez le service superviseur et activez-le après le redémarrage du système avec la commande suivante :
systemctl restart supervisor
systemctl enable supervisor
Vous pouvez également vérifier le service Superviseur avec la commande suivante :
systemctl status supervisor
Sortie :
? 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
Configurer Nginx pour NetBox
Ensuite, vous devrez configurer Nginx pour accéder à NetBox en utilisant le port 80. Pour ce faire, créez un fichier de configuration d'hôte virtuel avec la commande suivante :
nano /etc/nginx/sites-available/netbox
Ajoutez les lignes suivantes :
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; } }
Enregistrez et fermez le fichier. Ensuite, activez l'hôte virtuel avec la commande suivante :
ln -s /etc/nginx/sites-available/netbox.conf /etc/nginx/sites-enabled/
Enfin, redémarrez le service Nginx pour appliquer toutes les modifications de configuration avec la commande suivante :
systemctl restart nginx
Accéder à l'interface Web NetBox
NetBox est maintenant installé et configuré, il est temps d'accéder à l'interface Web de NetBox.
Ouvrez votre navigateur Web et saisissez l'URL http://votre-domaine.com. Vous serez redirigé vers la page suivante :
Maintenant, cliquez sur Connexion bouton dans le coin supérieur droit. Vous devriez voir la page suivante :
Maintenant, fournissez votre nom d'utilisateur et votre mot de passe d'administrateur, puis cliquez sur Journal Dans bouton. Vous devriez voir le tableau de bord par défaut de NetBox sur la page suivante :
Toutes nos félicitations! vous avez installé et configuré avec succès NetBox sur le serveur Ubuntu 18.04. Vous pouvez maintenant gérer et documenter votre réseau et votre adresse IP à partir de l'emplacement central. N'hésitez pas à me demander si vous avez des questions.