Comment installer NetBox IRM (Infrastructure Resource Modeling Tool) sur le serveur Ubuntu 24.04
Ce tutoriel existe pour ces versions de l’OS
- Ubuntu 24.04 (Noble Numbat)
- Ubuntu 20.04 (Fossa focal)
- Ubuntu 18.04 (Castor bionique)
Sur cette page
- Conditions préalables
- Installation des dépendances
- Configuration de PostgreSQL
- Téléchargement Configuration de Netbox
- Migration de Netbox et configuration de l’administrateur
- Exécution de Netbox en tant que service
- Configuration d’Apache en tant que proxy inverse
- Conclusion
NetBox est une modélisation des ressources d’infrastructure (IRM) conçue pour l’automatisation des réseaux et l’ingénierie des infrastructures. Initialement créé par l’équipe de DigitalOcean, il est devenu un projet open-source publié sous la licence Apache 2.
NetBox a été créé dans le framework Web Python Django avec PostgreSQL comme base de données par défaut, et l’installation de NetBox est assez similaire à celle des autres applications Web Python Django.
Ce tutoriel vous montrera comment installer Netbox IRM sur le serveur Ubuntu 24.04 avec PostgreSQL comme base de données et Apache comme proxy inverse. Vous sécuriserez également Netbox avec HTTPS via Certbot et Letsencrypt.
Conditions préalables
Avant de continuer, assurez-vous d’avoir les éléments suivants :
- Un serveur Ubuntu 24.04
- Un utilisateur non root avec des privilèges d’administrateur
- Un nom de domaine pointait vers l’adresse IP du serveur
Installation des dépendances
Pour installer Netbox, vous devez vous assurer que les dépendances sont installées sur votre serveur Ubuntu. Cela inclut Python3, le serveur PostgreSQL, le serveur Web Apache, Redis et les bibliothèques système. Dans cette section, vous allez installer ces paquets à l'aide du gestionnaire de paquets APT.
Tout d’abord, exécutez la commande suivante pour mettre à jour l’index de votre package Ubuntu.
sudo apt update
Une fois mis à jour, installez les dépendances pour Netbox avec la commande suivante. Dans cet exemple, vous allez installer PostgreSQL, Apache, Python, Redis, Certbot, générer des dépendances et certaines bibliothèques.
sudo apt install apache2 postgresql postgresql-common libpq-dev redis-server git certbot python3 python3-pip python3-venv python3-dev build-essential libxml2-dev libxslt1-dev libffi-dev libssl-dev zlib1g-dev
Entrez « Y » pour confirmer l'installation.
Une fois l'installation terminée, exécutez la commande 'systemctl' ci-dessous pour vérifier l'état du serveur Web Apache.
sudo systemctl is-enabled apache2
sudo systemctl status apache2
Dans le résultat suivant, vous pouvez voir qu’Apache est en cours d’exécution et activé.
Enfin, vérifiez l’état du serveur PostgreSQL avec les éléments suivants :
sudo systemctl is-enabled postgresql
sudo systemctl status postgresql
Dans le résultat ci-dessous, vous pouvez voir que PostgreSQL est activé et s’exécute avec le statut exited (systemd ne trouve pas le service à surveiller).
Configuration de PostgreSQL
Une fois les dépendances installées, vous devez configurer le serveur PostgreSQL en créant un nouvel utilisateur et une base de données que Netbox utilisera.
Connectez-vous au serveur PostgreSQL à l’aide de la commande ci-dessous.
sudo -u postgres psql
Exécutez maintenant les requêtes suivantes pour créer un nouvel utilisateur 'netbox' avec le mot de passe 'netboxpassword' et la nouvelle base de données 'netboxdb'.
CREATE USER netbox LOGIN CREATEDB PASSWORD 'netboxpassword';
CREATE DATABASE netboxdb OWNER netbox;
Une fois la base de données et l’utilisateur créés, vérifiez la liste des bases de données et des utilisateurs sur PostgreSQL à l’aide de ce qui suit.
\l
\du
Vous pouvez voir ci-dessous la base de données 'netboxdb' et l'utilisateur 'netbox' est créé.
Tapez 'quit' pour quitter le serveur PostgreSQL.
Téléchargement Configuration de Netbox
Maintenant que la base de données PostgreSQL est prête, vous allez télécharger et installer Netbox sur votre machine Ubuntu. Vous allez configurer le nom de domaine, la clé secrète et la base de données pour Netbox.
Tout d'abord, exécutez la commande ci-dessous pour créer un nouvel utilisateur 'netbox' sur votre machine Ubuntu.
sudo useradd -r -d /opt/netbox -s /usr/sbin/nologin netbox
Exécutez maintenant la commande ci-dessous pour télécharger le code source de la Netbox avec la commande 'git', et changez la propriété pour l'utilisateur 'netbox'.
sudo git clone -b master --depth 1 https://github.com/netbox-community/netbox.git /opt/netbox
sudo chown -R netbox:netbox /opt/netbox
Déplacez-vous dans le répertoire '/opt/netbox/netbox/netbox' et exécutez le fichier 'generate_secret_key.py. Copiez la clé secrète de votre note.
cd /opt/netbox/netbox/netbox
sudo -u netbox python3 ../generate_secret_key.py
Ensuite, copiez le fichier 'configuration.py' et modifiez-le à l'aide de l'éditeur 'nano'.
sudo -u netbox cp configuration_example.py configuration.py
sudo -u netbox nano configuration.py
Ajoutez votre adresse IP locale et votre nom de domaine à la ALLOWED_HOSTS.
ALLOWED_HOSTS = ['netbox.howtoforge.local', '192.168.10.60']
Entrez le nom de votre base de données PostgreSQL, votre utilisateur et votre mot de passe dans la section 'DATABASE'.
# database configuration
DATABASE = {
'NAME': 'netboxdb', # Database name
'USER': 'netbox', # PostgreSQL username
'PASSWORD': 'netboxpassword', # PostgreSQL password
'HOST': 'localhost', # Database server
'PORT': '', # Database port (leave blank for default)
'CONN_MAX_AGE': 300, # Max database connection age (seconds)
}
Collez votre clé secrète dans la section « SECRET_KEY ».
SECRET_KEY = '98%D9uh8S%)T0QhQ@Z3zYf%Hik^CqWJ)Uwz%0J7TZUztmNiitG'
Enregistrez le fichier et quittez l’éditeur lorsque vous avez terminé.
Migration de Netbox et configuration de l’administrateur
Maintenant que vous avez configuré Netbox avec le serveur PostgreSQL, vous êtes prêt à migrer la base de données et à créer un utilisateur administrateur pour l'installation de Netbox.
Exécutez le script 'upgrade.sh' à l'aide de la commande ci-dessous. Cela permet de créer un environnement Python, d’installer des dépendances pour Netbox, de migrer la base de données Netbox, de se connecter à Redis, puis de générer des fichiers statiques.
sudo -u netbox /opt/netbox/upgrade.sh
Ci-dessous, vous pouvez voir la migration de la base de données pour Netbox.
Et en dessous lorsque 'manage.py' génère des fichiers statiques.
Une fois le processus terminé, vous devez créer un nouvel utilisateur administrateur pour Netbox via le script 'manage.py.
Exécutez la commande suivante pour activer l’environnement virtuel Netbox. Une fois activé, votre obus deviendra tel que '(venv) user@hostname'.
source /opt/netbox/venv/bin/activate
Allez dans le répertoire '/opt/netbox/netbox' et exécutez le script 'manage.py' comme suit :
cd /opt/netbox/netbox
python3 manage.py createsuperuser
Entrez votre nom d’utilisateur, votre adresse e-mail et votre mot de passe pour l’administrateur Netbox.
Une fois terminé, exécutez la commande 'deactivate' pour quitter l'environnement virtuel Netbox.
Exécution de Netbox en tant que service
Dans cette section, vous allez copier les configurations Netbox qui seront utilisées pour exécuter Netbox en tant que service systemd. Vous devez vous assurer que Netbox fonctionne sous Gunicorn, puis copier les fichiers de service Netbox dans le répertoire '/etc/systemd/system'.
Tout d'abord, copiez le script 'gunicorn.py' dans le répertoire '/opt/netbox'. Ce script contient la configuration pour que Netbox s’exécute sous le serveur WSGI Python.
sudo -u netbox cp /opt/netbox/contrib/gunicorn.py /opt/netbox/gunicorn.py
Exécutez maintenant la commande ci-dessous pour copier les fichiers de service pour Netbox dans le répertoire '/etc/systemd/system' et rechargez le gestionnaire systemd.
sudo cp -v /opt/netbox/contrib/*.service /etc/systemd/system/
sudo systemctl daemon-reload
Une fois systemd rechargé, exécutez la commande 'systemctl' ci-dessous pour démarrer et activer les services Netbox.
sudo systemctl enable --now netbox netbox-rq netbox-housekeeping
Enfin, vérifiez les services Netbox pour vous assurer qu’ils s’exécutent à l’aide de la commande suivante.
sudo systemctl status netbox netbox-rq netbox-housekeeping
Dans le résultat suivant, vous pouvez voir que le service « netbox » est en cours d'exécution et activé.
Pour le service 'netbox-rq', vous devriez obtenir un résultat comme celui-ci :
Enfin, le 'netbox-housekeeping' avec le statut 'dead' car il fonctionnera comme un minuteur.
Configuration d’Apache en tant que proxy inverse
À ce stade, Netbox s’exécute en arrière-plan en tant que service sous le serveur WSGI Python. Pour le rendre accessible de l’extérieur, vous devez configurer Apache en tant que proxy inverse. Avant cela, vous devez également générer des certificats SSL pour sécuriser l’installation de Netbox.
Tout d'abord, exécutez la commande ci-dessous pour arrêter le service 'apache2'.
sudo systemctl stop apache2
Générez maintenant des certificats SSL à partir de Letsencrypt avec la commande 'certbot' ci-dessous. Assurez-vous de changer le nom de domaine et l’adresse e-mail avec vos informations.
sudo certbot certonly --standalone --preferred-challenges http -d netbox.howtoforge.local
Une fois le processus terminé, vos certificats SSL seront disponibles dans le répertoire '/etc/letsencrypt/live/domain.com.
Ensuite, copiez la configuration Apache pour Netbox dans le fichier '/etc/apache2/sites-available/netbox.conf' et modifiez-le à l'aide de l'éditeur 'nano'.
sudo cp /opt/netbox/contrib/apache.conf /etc/apache2/sites-available/netbox.conf
sudo nano /etc/apache2/sites-available/netbox.conf
Remplacez le nom de domaine dans l'option 'ServerName' et modifiez le chemin de vos certificats SSL.
<VirtualHost *:80>
# CHANGE THIS TO YOUR SERVER'S NAME
ServerName netbox.howtoforge.local
...
</VirtualHost>
<VirtualHost *:443>
ProxyPreserveHost On
# CHANGE THIS TO YOUR SERVER'S NAME
ServerName netbox.howtoforge.local
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/netbox.howtoforge.local/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/netbox.howtoforge.local/privkey.pem
...
</VirtualHost>
Enregistrez le fichier et quittez l’éditeur lorsque vous avez terminé.
Exécutez maintenant la commande ci-dessous pour activer les modules Apache et le fichier hôte virtuel 'netbox.conf'.
sudo a2enmod ssl proxy proxy_http headers rewrite
sudo a2ensite netbox.conf
Une fois l’hôte virtuel activé, exécutez la commande suivante pour redémarrer Apache et appliquer vos modifications. Avec cela, votre installation Netbox doit fonctionner sous le proxy inverse Apache avec HTTPS activé.
sudo systemctl restart apache2
Enfin, rendez-vous sur https://netbox.howtoforge.local/ avec votre navigateur Web et vous serez redirigé vers la page de connexion Netbox. Entrez votre nom d’utilisateur et votre mot de passe d’administrateur, puis cliquez sur Se connecter.
Le tableau de bord Netbox suivant s'affiche si vous disposez des informations d'identification d'administrateur appropriées.
Cliquez sur le menu Admin > System pour afficher des informations sur l’installation de votre Netbox. Dans le résultat suivant, vous pouvez voir que Netbox v4.1.7 est installé avec la base de données PostgreSQL.
Conclusion
Félicitations! Vous avez terminé l'installation de Netbox IRM sur le serveur Ubuntu 24.04. Netbox est opérationnel avec PostgreSQL comme serveur de base de données et Apache comme proxy inverse. Vous avez également sécurisé Netbox avec HTTPS via Certbot.