04/12/2025

Administration Réseau

Comment installer et utiliser NetBox pour documenter son infrastructure réseau ?

I. Présentation

NetBox est un outil open source combinant à la fois deux rôles importants : un IP Address Management (IPAM) et un Data Center Infrastructure Management (DCIM). Il permet de documenter l’infrastructure réseau, depuis les baies jusqu’aux adresses IP.

NetBox sert de référentiel central et vous laisse décrire, presque sans limite, tous les composants de votre infrastructure :

  • Organisation : Sites, utilisateurs, contacts
  • Baies (DCIM) : Rôles de baie, types (42U, 48U…)
  • Équipements : Rôles et types d’appareils, fabricants, modules matériels, interfaces (Ethernet, SFP, etc.), ports console, ports d’alimentation, adresses MAC
  • Connexions : Câbles physiques, liaisons radio point-à-point, alimentations électriques
  • Sans-fil : SSID et réseaux Wi-Fi
  • IPAM : Adresses IP, plages, VLAN
  • VPN : Tunnels site-à-site ou accès distant
  • Virtualisation : Machines virtuelles, interfaces, disques virtuels, clusters d’hyperviseurs
  • Mais aussi : commentaires, étiquettes (tags), marques, licences, etc.
Page d’accueil NetBox

NetBox a une version community qui permet d’être hébergée sur son infrastructure et propose aussi des services payants destinés aux entreprises. La version open source de NetBox n’impose pas de restrictions d’usage. Les différences avec les offres payantes portent sur les fonctionnalités additionnelles, l’hébergement cloud et le support.

Aussi, NetBox, a une très grande communauté qui a permis la création de plugins. Ils permettent d’ajouter ou d’améliorer certaines fonctionnalités.

Dans ce tutoriel, vous allez procéder à l’installation de NetBox Community sur Linux. Pour ma part, je vais réaliser l’installation sur un serveur Debian 12. Il est tout à fait possible d’installer NetBox sur d’autres distributions. Cependant, à noter que l’installation officielle de NetBox présentée dans la documentation a été réalisée sur Ubuntu 22.04.

II. Fonctionnement de NetBox

Pour commencer, voici un schéma représentatif de la structure de NetBox.

Schéma simplifié du fonctionnement de NetBox

Nous pouvons visualiser les composants suivants :

  • PostgreSQL : Base de données utilisée pour stocker toutes les données
  • Redis : Mémoire tampon utilisée pour les différentes tâches
  • Django : Base de développement de l’application NetBox
  • NetBox : Application contenant toutes les fonctionnalités
  • Rqworker : Processus python permettant d’exécuter des tâches en arrière-plan
  • Gunicorn : Serveur WSGI permettant la communication entre Django et Nginx
  • Nginx/Apache : Serveur web permettant de recevoir les requêtes et accéder à l’application

III. Installation de NetBox

A. Prérequis

Si vous souhaitez installer NetBox sur votre serveur Linux, il faudra vérifier que ces exigences soient acquises pour effectuer une bonne installation. Les exigences pour l’installation sont :

DépendancesVersions supportées

Python

3.10, 3.11, 3.12

PostgreSQL

14+

Redis

4.0+

B. Mise à jour du serveur

Sur votre serveur Linux, fraîchement installée ou non, appliquez les mises à jour de paquets avec la commande suivante :

sudo apt update && sudo apt upgrade -y

C. Installation de la base de données PostgreSQL

Vous allez procéder à l’installation et configuration d’une base de données PostgreSQL. NetBox nécessite PostgreSQL 14 ou une version ultérieure.

Note : veuillez noter que MySQL et d’autres bases de données relationnelles ne sont pas pris en charge.

  • Installation

Pour installer PostgreSQL, vous allez utiliser cette commande :

sudo apt install -y postgresql

Avant de continuer, vérifiez la version que vous venez d’installer de PostgreSQL :

psql -V
Affichage version PostgreSQL

Sur Debian 12, c’est la version 15 de PostgreSQL qui est installée. Sur Debian 13, par exemple, ce sera la version 17 de PostgreSQL qui sera installée.

  • Création de la base de données

Vous allez maintenant procéder à la création de la base de données pour NetBox, lui attribuer un nom utilisateur ainsi qu’un mot de passe pour l’authentification.

Avant cela, il faut se connecter à PostgreSQL en tant qu’utilisateur postgres :

sudo -u postgres psql

Vous risquez d’apercevoir comme message : could not change directory to "/root": Permission non accordée, ceci est normal.

Avec cette commande, nous essayons d’exécuter la commande en tant que root, avec l’utilisateur postgres, qui par défaut n’a pas les droits d’accès au dossier root.

Ensuite, vous allez créer la base de données netbox, l’utilisateur netbox et lui associer un mot de passe. Veuillez choisir un mot de passe fort à la place de la valeur ChoisirSonMotDePasse.

CREATE DATABASE netbox;
CREATE USER netbox WITH PASSWORD 'ChoisirSonMotDePasse';
ALTER DATABASE netbox OWNER TO netbox;

Les commandes suivantes sont nécessaires sur PostgreSQL 15 et les versions supérieures (sauf la dernière pour quitter).

\connect netbox;
GRANT CREATE ON SCHEMA public TO netbox;
\q
  • Vérifier l’état du service

Maintenant, vous allez vérifier l’accès à la base de données avec notre utilisateur nouvellement créé :

psql --username netbox --password --host localhost netbox
Vérification accès base de données

Vous pouvez voir les informations de connexion en exécutant :

\conninfo

Pour sortir de la base et revenir sur le shell :

\q

D. Installation de Redis

Redis est un magasin clé-valeur en mémoire que NetBox utilise pour la mise en cache et la mise en file d’attente.

  • Installation de redis

Pour réaliser l’installation de Redis, c’est assez simple, il faut exécuter cette commande :

sudo apt install -y redis-server

Avant de continuer, vérifiez que votre version installée de Redis est au moins v4.0 :

redis-server -v
  • Vérifier l’état du service

Utilisez l’utilitaire suivant pour vous assurer que le service Redis est fonctionnel :

redis-cli ping

En cas de succès, vous devriez recevoir une réponse du serveur PONG.

E. Installation de NetBox

Cette partie traite de l’installation et de la configuration de l’application NetBox elle-même.

  • Installer les packages système

Il va falloir commencer par installer tous les paquets systèmes dont NetBox et ses dépendances ont besoin (une seule commande sur plusieurs lignes).

sudo apt install -y python3 python3-pip python3-venv python3-dev \
build-essential libxml2-dev libxslt1-dev libffi-dev libpq-dev \
libssl-dev zlib1g-dev

Avant de poursuivre, vérifiez que Python est en version 3.10, 3.11 ou 3.12, les seules versions officiellement supportées par NetBox.

python3 -V

Les versions ultérieures (ex. 3.13+) peuvent démarrer, mais ne sont pas prises en charge et peuvent avoir des incompatibilités. En production, tenez-vous-en aux versions 3.10 à 3.12 comme le recommande la documentation.

  • Téléchargement de NetBox

La documentation prévoit deux façons de télécharger : soit via une archive qu’on extrait par la suite, sinon via le clone de dépôt git. En suivant la documentation, vous pouvez choisir.

Pour ma part, je vais réaliser l’installation via le clone de dépôt git, car les mises à jour sont plus simples. Nous commençons par créer le répertoire de base pour l’installation de NetBox.

Pour ce guide, nous allons utiliser : /opt/netbox

sudo mkdir -p /opt/netbox/
cd /opt/netbox/

S’il n’est pas déjà installé, installez le paquet Git :

sudo apt install -y git

Puis, clonez le dépôt Git :

sudo git clone https://github.com/netbox-community/netbox.git .

Cette commande doit générer un résultat similaire à ce qui suit :

Cloner le dépôt Git de Netbox
Récupération fichier de NetBox sur le Github

Vous allez vérifier la version à installer. Pour cela, il faut se rendre sur le Github de NetBox et regarder les releases, et récupérer le numéro de la dernière version. Ce sera la version 4.3.5 pour ma part.

Ensuite, exécutez la commande suivante avec la version que vous souhaitez :

sudo git checkout vX.Y.Z

L’utilisation de cette méthode d’installation permet des mises à niveau faciles à l’avenir en vérifiant simplement la dernière étiquette de version.

  • Création de l’utilisateur du système NetBox

Vous allez créer l’utilisateur système netbox, et affecter seulement les droits des dossiers nécessaires au bon fonctionnement de NetBox.

sudo adduser --system --group netbox
sudo chown --recursive netbox /opt/netbox/netbox/media/
sudo chown --recursive netbox /opt/netbox/netbox/reports/
sudo chown --recursive netbox /opt/netbox/netbox/scripts/

Quelques explications :

- Dossier media : emplacement où NetBox stocke les fichiers téléversés (par ex. pièces jointes d’images).

- Dossier reports : répertoire historique où sont conservés les rapports personnalisés.

Attention : les reports sont dépréciés depuis NetBox 4.0. Utilisez plutôt les scripts personnalisés. Gardez ce dossier surtout pour compatibilité.

- Dossier scripts : emplacement des scripts personnalisés exécutables depuis l’interface.

  • Configuration fichier d’installation

Allez dans le répertoire de configuration NetBox et faites une copie du fichier de configuration de base : configuration_example.py.

Ce fichier configuration.py contiendra tous vos paramètres de configuration locaux.

cd /opt/netbox/netbox/netbox/
sudo cp configuration_example.py configuration.py

Modifiez ce fichier avec l’éditeur de votre choix pour commencer à configurer NetBox. NetBox offre de nombreux paramètres de configuration, mais seuls les quatre suivants sont requis pour les nouvelles installations :

  • ALLOWED_HOSTS
  • DATABASES
  • REDIS
  • SECRET_KEY

Regardons de plus près de quoi il s'agit.

- ALLOWED_HOSTS

Il s’agit d’une liste des noms d’hôtes et adresses IP valides par lesquels ce serveur peut être atteint. Vous devez « spécifier » au moins un FQDN ou une adresse IP. (Notez que cela ne limite pas les emplacements à partir desquels NetBox peut être accédé : il s’agit simplement de la validation de l’en-tête de l’hôte HTTP).

sudo vi configuration.py
ALLOWED_HOSTS = ['netbox.example.com', '192.0.2.123']

Si vous n’êtes pas encore sûr du nom de domaine et/ou de l’adresse IP de l’installation de NetBox, vous pouvez définir ce FQDN sur un caractère générique (astérisque) pour autoriser toutes les valeurs d’hôte :

ALLOWED_HOSTS = ['*']

Pour l’exemple, je vais utiliser le caractère générique ALLOWED_HOSTS = [‘*'], mais veuillez le changer pour une mise en production.

- DATABASES

Ce paramètre contient les détails de configuration de la base de données PostgreSQL. La base de données par défaut doit être définie. Des bases de données supplémentaires peuvent être définies si nécessaire, par exemple, par des plugins.

Un nom d’utilisateur et un mot de passe doivent être définis pour la base de données par défaut. Si le service s’exécute sur un hôte distant, mettez à jour les paramètres en conséquence.

Pour plus de détails sur les paramètres individuels, consultez la documentation de configuration.

Configuration partie DATABASES de Netbox
Configuration partie DATABASES

- REDIS

Redis est un magasin clé-valeur en mémoire utilisé par NetBox pour la mise en cache et la mise en file d’attente des tâches en arrière-plan. Redis nécessite généralement une configuration minimale. Les valeurs dans le fichier devraient suffire pour la plupart des installations.

Pour plus de détails, consultez la documentation.

Notez que NetBox nécessite la spécification de deux bases de données Redis distinctes : tasks et caching. Ces deux services peuvent être fournis par le même service Redis, mais chacun doit avoir un ID de base de données numérique unique. Il n’y a donc rien à modifier.

- SECRET_KEY

Ce paramètre doit être affecté à une clé générée de manière aléatoire utilisée comme sel pour le hachage et les fonctions cryptographiques associées. (Notez toutefois qu’il n’est jamais directement utilisé dans le cryptage de données secrètes.) Cette clé doit être unique à cette installation et il est recommandé d’avoir au moins 50 caractères. Elles ne doivent pas être partagées en dehors du système local.

Un script Python simple est fourni dans le répertoire parent pour aider à générer une clé appropriée : generate_secret_key.py

Vous pouvez enregistrer le fichier configuration.py que vous venez d’ouvrir, puis le quitter pour générer la clé.

Pour générer la clé, exécutez cette commande :

python3 ../generate_secret_key.py

Une clé doit apparaître, veuillez bien la noter, il va falloir l’ajouter par la suite dans le fichier de configuration.

Éditez de nouveau le fichier de configuration.py, est à la ligne de SECRET_KEY ajoutez la clé générée à l’étape précédente :

sudo vi configuration.py
SECRET_KEY = 'clegeneree'

Vous pouvez sortir du fichier, vous avez terminé cette étape de configuration.

- Options facultatives

Vous avez la possibilité de rajouter des options facultatives, notamment si vous souhaitez connecter un stockage ou une base de données distante, via S3 notamment. Pour ma part, je vais sauter cette partie, qui ne concerne pas l’installation basique.

F. Exécution script d’installation

  • Exécuter script mise à niveau

Une fois NetBox configuré, vous êtes prêts à procéder à l’installation proprement dite. Vous allez exécuter le script de mise à niveau empaqueté pour effectuer les actions suivantes :

  • Créer un environnement virtuel Python

- Installer tous les packages Python requis

- Exécuter des migrations de schéma de base de données

- Construire la documentation localement (pour une utilisation hors ligne)

- Agréger des fichiers de ressources statiques sur le disque

Pour lancer le script d’installation :

sudo /opt/netbox/upgrade.sh

Notez que Python 3.10, 3.11, 3.12 est requis pour NetBox v4.0 et les versions supérieures. Si l’installation par défaut de Python sur votre serveur est définie sur une version inférieure, transmettez le chemin d’accès à l’installation prise en charge sous la forme d’une variable d’environnement nommée :

sudo PYTHON=/usr/bin/python3.12 /opt/netbox/upgrade.sh

Note : Une fois l’opération terminée, le script de mise à niveau peut avertir qu’aucun environnement virtuel existant n’a été détecté. Comme il s’agit d’une nouvelle installation, cet avertissement peut être ignoré en toute sécurité.

Voici le résultat final :

Fin de l’installation de NetBox
  • Créer un super utilisateur

NetBox n’est pas livré avec des comptes d’utilisateur prédéfinis.

Vous devez créer un super utilisateur (compte administratif) pour pouvoir vous connecter à NetBox. Tout d’abord, entrez dans l’environnement virtuel Python créé par le script de mise à niveau :

source /opt/netbox/venv/bin/activate

Une fois l’environnement virtuel activé, vous devriez remarquer la chaîne venv ajoutée à l’invite de votre console.

Ensuite, vous allez créer un compte de super utilisateur à l’aide de la commande de gestion Django.

Il n’est pas nécessaire de spécifier une adresse e-mail pour l’utilisateur, cependant, assurez-vous d’utiliser un mot de passe fort. Comme le montre l'image ci-dessous, nous créons l'utilisateur itconnect.

cd /opt/netbox/netbox
python3 manage.py createsuperuser
Création super utilisateur
  • Planifier la tâche de nettoyage

NetBox inclut une commande de gestion qui gère certaines tâches de nettoyage récurrentes, telles que l’effacement des anciennes sessions et des enregistrements de modifications expirés.

Bien que cette commande puisse être exécutée manuellement, il est recommandé de configurer une tâche planifiée à l’aide du démon du système ou d’un utilitaire similaire.

Un script shell qui appelle cette commande est inclus dans NetBox. Il peut être copié ou lié à partir du répertoire de tâches cron quotidien (cron.daily) de votre système, ou inclus directement dans le crontab (si vous installez NetBox dans un chemin non standard, assurez-vous d’abord de mettre à jour les chemins système dans ce script.)

sudo ln -s /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-housekeeping

Vous pouvez vérifier l’ajout avec la commande suivante :

ls -l /etc/cron.daily/netbox-housekeeping

Consultez la documentation de tâche de nettoyage de NetBox pour plus de détails.

  • Tester l’application

À ce stade, vous devriez être en mesure d’exécuter le serveur de développement de NetBox pour le tester, en local, sur votre serveur. Juste après, vous pourrez continuer l’installation pour une mise en production. Il s'agit donc d'une étape intermédiaire.

Vérifiez que l’environnement virtuel Python est toujours actif avant d’essayer d’exécuter le serveur. Sur votre terminal, vous devriez voir venv à coté de votre nom d’utilisateur. Si ce n’est pas le cas, exécuter cette commande :

source /opt/netbox/venv/bin/activate

Pour lancer l’environnement virtuel, vous allez exécuter cette commande :

python3 manage.py runserver 0.0.0.0:8000 --insecure

En cas de réussite, vous devriez voir un résultat similaire à ce qui suit :

Lancement environnement virtuel

Ensuite, connectez-vous au nom ou à l’adresse IP du serveur via le port 8000. Par exemple, http://127.0.0.1:8000/. Vous devriez être accueilli par la page d’accueil de NetBox.

Essayez de vous connecter à l’aide du nom d’utilisateur et du mot de passe spécifiés lors de la création du super utilisateur. Pour rappel, il s'agit pour ma part de l'utilisateur itconnect.

Connexion NetBox

Le serveur de développement est uniquement destiné au développement et aux tests. Il n’est ni performant, ni assez sécurisé, pour une utilisation en production.

Si le service de test ne s’exécute pas ou si vous ne pouvez pas accéder à la page d’accueil de NetBox, un problème s’est produit. Ne poursuivez pas avec le reste de ce guide tant que l’installation n’a pas été corrigée.

Vous accédez bien à l’interface web et la connexion fonctionne correctement. Sur le terminal, vous pouvez faire ctrl+c pour sortir du mode développement.

G. Gunicorn

NetBox s’exécute en tant qu’application WSGI derrière un serveur HTTP. Gunicorn est automatiquement installé avec NetBox. Cependant, d’autres serveurs WSGI sont disponibles et devraient fonctionner de la même manière. NetBox propose notamment une installation officielle via uWSGI.

  • Configuration Gunicorn

NetBox est livré avec un fichier de configuration par défaut pour Gunicorn. Vous devez faire une copie de ce fichier plutôt que de le modifier directement pour vous assurer que les modifications locales qui y sont apportées ne sont pas écrasées lors d’une future mise à niveau de NetBox.

sudo cp /opt/netbox/contrib/gunicorn.py /opt/netbox/gunicorn.py

Bien que la configuration fournie devrait suffire pour la plupart des installations initiales, vous pouvez modifier ce fichier pour modifier l’adresse IP liée et/ou le numéro de port, ou pour effectuer des ajustements liés aux performances.

Consultez la documentation de Gunicorn pour connaître les paramètres de configuration disponibles. Je laisse par défaut pour cette configuration.

  • Configuration du systemd

Vous utiliserez systemd pour contrôler à la fois Gunicorn et le processus de travail en arrière-plan de NetBox.

Les fichiers de configuration du service standard fournis avec NetBox supposent que le service s’exécutera avec les noms d’utilisateur et de groupe. Si ceux-ci diffèrent sur votre installation, assurez-vous de mettre à jour les fichiers de service en conséquence.

sudo cp -v /opt/netbox/contrib/*.service /etc/systemd/system/
sudo systemctl daemon-reload

Ensuite, démarrez les services et configurez-les pour se lancer automatiquement au démarrage :

sudo systemctl enable --now netbox netbox-rq

Vous pouvez utiliser la commande suivante pour vérifier que le service WSGI est en cours d’exécution :

systemctl status netbox.service

Vous devriez voir un résultat similaire à ce qui suit :

Vérification service NetBox

H. Installation du serveur HTTP

Cette documentation fournit des exemples de configurations pour nginx et Apache2, bien que tout serveur HTTP prenant en charge WSGI doit être compatible. Comme pour les actions précédentes, celles qui suivent sont effectuées sur Debian, mais sont fonctionnelles aussi sur Ubuntu.

  • Obtenir un certificat TLS

Pour activer l’accès HTTPS à NetBox, vous aurez besoin d’un certificat TLS valide. Vous pouvez en acheter un auprès d’un fournisseur commercial de confiance, en obtenir un gratuitement auprès de Let’s Encrypt ou générer le vôtre.

Les fichiers de certificat public et de clé privée doivent être installés sur votre serveur NetBox à un endroit lisible par l’utilisateur.

La commande ci-dessous peut être utilisée pour générer un certificat auto-signé à des fins de test, mais il est fortement recommandé d’utiliser un certificat d’une autorité de confiance en production. Deux fichiers seront créés : le certificat public (netbox.crt) et la clé privée (netbox.key).

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/netbox.key -out /etc/ssl/certs/netbox.crt

La commande ci-dessus vous demandera des détails supplémentaires sur le certificat : pays, organisation, etc... renseignez à minima le Common Name du certificat.

  • Installation d’un serveur web Apache2

Dans la documentation, vous avez le choix, pour le serveur web, entre Nginx et Apache. Pour ma part, je vais choisir l’installation par Apache.

Vous allez commencer par l’installation d’Apache :

sudo apt install -y apache2

Une fois Apache installé, copiez le fichier de configuration Apache fourni par NetBox :

sudo cp /opt/netbox/contrib/apache.conf /etc/apache2/sites-available/netbox.conf

Ensuite, vous devez modifier le fichier netbox.conf qui se situe dans /etc/apache2/sites-available/netbox.conf. Dans ce fichier, vous devez spécifier le nom de domaine ou l’adresse IP de votre installation.

sudo vi /etc/apache2/sites-available/netbox.conf

Dans les premières lignes, modifiez la partie ServerName netbox.example.com par le nom de votre serveur. Pour moi, ce sera IT-NETBOX. Faire cela pour les deux hôtes virtuels : VirtualHost * :80 et VirtualHost * :443.

Enregistrez et fermez le fichier quand les modifications sont effectuées.

Enfin, assurez-vous que les modules Apache requis sont activés, activez le site et rechargez Apache. Voici les commandes à exécuter :

sudo a2enmod ssl proxy proxy_http headers rewrite
sudo a2ensite netbox
sudo systemctl restart apache2
  • Confirmer la connectivité

À ce stade, vous devez être en mesure de vous connecter au service HTTPS via le nom de votre serveur ou via l’adresse IP que vous avez fournie. Pour ma part, https://192.168.136.136.

Vous aurez certainement un avertissement lié au certificat qui apparaîtra à l'écran, sauf si vous n'avez pas utilisé un certificat auto-signé. Vous pouvez ignorer l'avertissement et passer à la suite. Vous devriez atteindre la page d’authentification pour NetBox.

Page de connexion à NetBox

Ensuite, saisissez l’identifiant et mot de passe du super utilisateur. Bienvenue sur NetBox !

N’oubliez pas que les configurations fournies ici sont le strict minimum requis pour que NetBox soit opérationnel. Vous voudrez peut-être apporter des ajustements pour mieux l’adapter à votre environnement de production.

IV. Premiers pas avec NetBox

Suite à la connexion, l'interface d'administration de NetBox est visible à l'écran. Par où commencer ? C'est ce que nous allons voir.

A. Création d’objets

Vous trouverez sur la gauche les différents menus avec des flèches pour voir les sous-parties. Vous pouvez ajouter les éléments souhaités. Cependant, NetBox utilise de nombreux modèles reposants sur la création d’autres types au préalable. Par exemple, vous ne pouvez pas créer un type d’appareil tant que vous n’avez pas créé son fabricant.

Pour nous aider à créer correctement des objets, NetBox a donné un ordre d’opération spécifique.

Vous pouvez créer des objets manuellement, mais il est possible aussi d’importer en bloc via des fichiers de données aux formats CSV ou YAML.

B. Ajouter un site

Vous allez créer un site, pour cela, dans la partie gauche se rendre dans « Organisation » et « déplier » via la flèche pour voir plus de catégories et « accéder » à « Sites ».

Menu NetBox - Sites

Vous pourrez ajouter des sites en cliquant sur le bouton « Ajouter » qui se situe haut à droite :

Ensuite, sur la page d’ajout de site, renseignez au minimum les champs obligatoires, signalés par le caractère *. En descendant, vous pouvez renseigner l’adresse du site par exemple.

Pour terminer, vous pouvez enregistrer en cliquant sur le bouton « Créez ».

Formulaire pour ajouter un site à NetBox

Après avoir validé la création du site, vous accédez à la page du site, où les informations renseignées remontent. Si besoin, vous pouvez modifier à tout moment avec le bouton « Modifier ».

Aperçu d'un site existant dans NetBox

Vous avez la possibilité de rajouter d’autres sites et par la suite ajouter du matériel. Pour ma part, j’ai créé deux autres sites supplémentaires. Ce qui donne :

Liste des sites sur NetBox

C. Ajouter un switch

Vous pouvez ajouter des switchs manuellement, mais cela pourrait prendre beaucoup de temps : créer les différents switchs, les interfaces, les types de ports...

Heureusement, grâce à la communauté, NetBox contient une base de tous types de matériels, de différentes marques. Sur leur GitHub, dans le dossier devicetype-library, vous retrouvez tous les différentes marques, ainsi que leurs matériels. Vous devriez retrouver vos matériels dans les nombreux choix proposés.

Ensuite, si vous voulez ajouter un modèle de switch Cisco par exemple, je vais me rendre dans le dossier Cisco, et choisir mon modèle, par exemple, le modèle suivant : WS-C2960-24-S.

  • Création d’un fabricant

Sur NetBox, il faudra créer, au préalable, le fabricant pour que l’import du modèle fonctionne.

Vous allez dans le menu à gauche, dans la partie Matériels > Fabricants.

NetBox - Menu Fabricants

Vous pouvez cliquer sur « ajouter » en haut à droite et indiquer un fabricant, pour ma part, ce sera Cisco.

Ajouter le fabricant Cisco à NetBox

Après, vous pouvez faire « créez », cela va ajouter le nouveau fabricant à votre base.

  • Création type d’appareils

Ensuite, pour rajouter un type d’appareils, qui correspond finalement au modèle du matériel, il faudra se rendre dans le menu à gauche dans la partie « Type d’appareils ».

NetBox - Menu Types d'appareils

Et, ici, vous pouvez cliquer sur le bouton « Importer » en haut à droite.

Dans la partie Data, il faudra « coller » le fichier YAML correspondant au matériel que vous souhaitez ajouter. Me concernant, ce sera le fichier WS-C2960-24-S.yaml. Si vous le souhaitez, vous pouvez l'éditer en ligne avant de l’ajouter.

Après cela, vous pouvez faire « Soumettre », et vous verrez l’ajout du switch Cisco Catalyst 24 ports.

En cliquant sur « Catalyst 2960-24-S », vous accédez aux informations réelles du switch. Ainsi que les interfaces créées.

Propriétés du switch créé dans NetBox

Vous avez simplement créé un type de switch, qui servira de modèle pour déployer des switchs sur vos sites.

Je vais vous montrer comment ajouter un switch sur un site. Pour créer un matériel, il faut, au préalable, créer le « rôles des appareils ».

NetBox - Menu pour accéder aux rôles des appareils

Vous pouvez « ajouter » en haut à droite. Comme vous avez ajouté un switch, vous allez définir le type comme « Switch » :

NetBox - Ajout du rôle de l’appareil

Après, vous pouvez faire « Créez » pour l’ajouter.

Pour continuer, nous allons créer l’appareil, qui sera le switch du site de Lyon.

  • Création appareils

Pour cela, se rendre dans le menu à gauche, et accéder à « Appareils ».

NetBox - Menu pour accéder à Appareils

Vous pourrez, cette fois, ajouter un appareil, en haut à droite, via le bouton « Ajouter ». Vous pourrez indiquer un nom, et renseigner le modèle du switch, le type, ainsi que le site. Nous utilisons tous les objets créés préalablement.

Ajouter un nouveau switch à NetBox

Une fois créé, vous pouvez accéder au switch et à ses interfaces grâce au modèle Cisco qui lui a été attribué.

NetBox - Interface du switch sur le site de Lyon

Voilà, vous avez pu créer un site, ainsi qu’un switch. Vous pouvez continuer en ajoutant ce que vous souhaitez. N’oubliez pas l’ordre d’opération, pour ne pas bloquer lors de l'ajout d’un objet. Vous pouvez vous aider des modèles déjà créé pour gagner du temps : rendez-vous sur le GitHub.

V. Mise à jour NetBox

NetBox, propose régulièrement des mises à jour via GitHub. Il est donc impératif de les suivre et de les appliquer.

Comme pour l’installation initiale, vous pouvez mettre à niveau NetBox en téléchargeant le dernier paquet de version ou en extrayant la dernière release depuis le dépôt GitHub.

Attention : Utilisez la même méthode que celle employée lors de l’installation d’origine.

Si vous avez suivi ce tutoriel, NetBox a été installé depuis GitHub, c’est donc avec GitHub que vous effectuerez la mise à jour.

  • Vérification méthode d’installation NetBox

Si vous n’êtes pas sûr de la méthode d’installation d’origine, vérifiez avec :

ls -ld /opt/netbox /opt/netbox/.git
  • Si NetBox a été installé à partir d’un paquet, /opt/netbox sera un lien symbolique vers la version courante et /opt/netbox/.git n’existera pas.
  • S’il a été installé depuis Git, /opt/netbox et /opt/netbox/.git existeront comme répertoires normaux.

Avant la mise à jour, prévoyez un snapshot de la machine.

  • Récupérer dernière version

Pour cela, vous pouvez le voir sur le GitHub, sinon dans la documentation, il est indiqué une commande à exécuter sur le serveur et qui affiche la dernière version. La commande à réaliser est :

git ls-remote --tags https://github.com/netbox-community/netbox.git \
| grep -o 'refs/tags/v[0-9]*\.[0-9]*\.[0-9]*$' \
| tail -n 1 \
| sed 's|refs/tags/||'

Il affiche ensuite la version, ici 4.3.7.

  • Réaliser la mise à jour

Pour réaliser la mise à jour, il faut se rendre dans le dossier d’installation de NetBox (/opt/netbox), et indiquer la version à installer à la place de X.Y.Z (4.3.7).

cd /opt/netbox && sudo git fetch --tags && sudo git checkout vX.Y.Z

Ce qui donne :

  • Exécuter le script de mise à niveau

Comme pour l’installation, vous devez exécuter le script de mise à niveau via la commande suivante :

sudo ./upgrade.sh

Ce script effectue les actions suivantes :

  • La reconstruction de l’environnement virtuel Python
  • L’installation des dépendances (listés dans requirements.txt + local_requirements.txt)
  • Application des migrations de base de données
  • La construction de la documentation locale
  • La collecte des fichiers statiques
  • Le nettoyage des contenus obsolètes et des sessions expirées.
  • Redémarrer les services

Comme indiqué ensuite, bien redémarrer les services :

sudo systemctl restart netbox netbox-rq

Ensuite, reconnectez-vous à l’interface et vérifiez en bas à gauche que la nouvelle version est bien affichée.

VI. Conclusion

En suivant ces étapes, vous disposez désormais d’un NetBox opérationnel, accessible en HTTPS et prêt à devenir la « source de vérité » de votre SI pour l’IPAM/DCIM. Vous pouvez centraliser la documentation (sites, racks, équipements, VLAN, IP), fiabiliser les données. Vous pouvez aussi, le mettre à jour régulièrement.

Pour aller plus loin dès maintenant, consultez la documentation officielle de NetBox et le dépôt GitHub du projet.

author avatar
Tom SALA
Je m'appelle Tom SALA et je suis étudiant en chef de projet informatique. Je souhaite montrer mes découvertes et mes connaissances à travers les articles.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

8 commentaires sur “Comment installer et utiliser NetBox pour documenter son infrastructure réseau ?

  • tant qu’ retranscrire ce qui existe déjà
    faudrait voir à le faire bien non ?

    Use UTF8 encoding
    Make sure that your database uses UTF8 encoding (the default for new installations). Especially do not use SQL_ASCII encoding, as it can lead to unpredictable and unrecoverable errors. Enter \l to check your encoding.

    Once complete, enter \q to exit the PostgreSQL shell.

    seriously ?

    Répondre
      • simplement que la doc officielle demande à vérifier/modifié la base en utf8

        par defaut elle est en ascii

        ce qui fera qu’un novice ira droit dans le mur

        Répondre
        • Bonjour,

          Lorsqu’on fait un commentaire, c’est d’avoir un minimum de politesse.

          De plus, il faudrait être sur de ce qu’on dit.

          Autant je suis d’accord pour dire dans l’article qu’il faut vérifier l’encodage mais avant de faire des remarques, on s’assure de donner les bonnes informations.

          Par défaut l’encodage est bien en utf8 et non ascii.

          « Use UTF8 encoding :
          Make sure that your database uses UTF8 encoding (the default for new installations).  »

          Il est bien précisé que l’encodage est en utf8 pour les nouvelles installations.

          Cordialement.

          Répondre
  • Bonjour,

    Est-ce qu’il y a un moyen facile de faire remonter les informations des équipements ?
    Par exemple si j’ajoute un HP ProLiant DL360 G7, j’aimerais faire remonter les informations de celui-ci ; comme le CPU, RAM, interface réseau, GPU, Alim. Bref toutes les informations qu’on peut y trouver !

    Merci d’avance.

    Répondre
  • Bonjour,

    Merci pour ce post complet.
    Nous sommes d’accord que ce système est une BDD de notre infra, mais qu’à aucun moment nous pouvons inscrire des appareils ou faire remonter des appareils automatiquement (style OCS / Wazuh) ? Il n’y a de scan réseau pour récupérer tout ce qui est détecté et l’ajouter automatiquement dans l’inventaire de manière dynamique ?

    Merci.

    Répondre
  • Bonjour, article pertinent, clair et facile à suivre comme d’habitude !
    Une mise à jour avec Netbox scanner serait envisageable ?
    Merci

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.