🐳 Installer Oxidized avec Docker sur Debian/Ubuntu
🐳 Installer Oxidized avec Docker sur Debian/Ubuntu
Oxidized est l’outil de référence pour sauvegarder et versionner les configurations de vos équipements réseau (Cisco, Juniper, Huawei…).
Le faire tourner dans un conteneur Docker est la méthode la plus propre, rapide et maintenable.
Ce guide est valable pour Debian 11/12 et Ubuntu 20.04/22.04/24.04.
1. Prérequis
- Un serveur ou VM avec Docker installébashsudo apt update && sudo apt install docker.io -y sudo systemctl enable –now docker sudo usermod -aG docker $USER # puis déconnectez/reconnectez-vous
- Un répertoire pour la configuration d’Oxidized, par exemple
~/oxidized-config - Connaissance de base des droits de fichiers (nous utiliserons l’UID 30000)
2. Gérer les permissions (UID 30000)
À l’intérieur du conteneur, Oxidized tourne sous l’utilisateur oxidized (UID 30000).
Les fichiers créés dans le volume monté appartiendront à cet UID sur l’hôte.
Pour que Docker puisse écrire dans ~/oxidized-config :
3. Générer un fichier de configuration initial
Lancez une première fois Oxidized avec un volume monté. Il va créer un fichier d’exemple config qu’il vous demandera de modifier.
Le message indique :
edit /home/oxidized/.config/oxidized/config
Sur votre hôte, éditez ~/oxidized-config/config selon vos besoins (sources, authentification, sorties Git, API…).
Créez également un fichier ~/oxidized-config/router.db (si vous utilisez la source CSV) ou configurez une autre source (NetBox, SQL).
4. Lancer le conteneur en service
Une fois la configuration prête, lancez Oxidized avec redémarrage automatique et exposition du port API (8888).
Important : Pour que l’API REST et l’interface web soient accessibles depuis l’extérieur, éditez
~/oxidized-config/configet remplacezrest: 127.0.0.1:8888parrest: 0.0.0.0:8888. Ensuite redémarrez le conteneur.
Vérifiez les logs :
5. Utiliser docker-compose (recommandé pour la production)
Créez un fichier docker-compose.yml :
Démarrez le service
6. Configurations avancées (sous Docker)
Rechargement automatique de la configuration
Ajoutez la variable d’environnement CONFIG_RELOAD_INTERVAL (en secondes) :
-e CONFIG_RELOAD_INTERVAL=3600
Utiliser une autorité de certification interne
Montez votre fichier .crt et activez la mise à jour :
-v /etc/ssl/certs/ma-ca.crt:/usr/local/share/ca-certificates/ma-ca.crt \ -e UPDATE_CA_CERTIFICATES=true
Passphrase SSH pour un dépôt Git distant
bash
-e OXIDIZED_SSH_PASSPHRASE="ma_passphrase"
Stocker les clés SSH pour le hook githubrepo
Montez un répertoire ~/oxidized-ssh vers /home/oxidized/.ssh :
- Créez la clé SSH (sur l’hôte) :bashmkdir -p ~/oxidized-ssh ssh-keygen -q -t ed25519 -C « Oxidized Push Key » -N « VOTRE_PASSPHRASE » -m PEM -f ~/oxidized-ssh/oxidized-key
- Récupérez la clé publique de votre serveur Git :bashssh-keyscan git-server.exemple.com > ~/oxidized-ssh/known_hosts
- Ajustez les droits pour l’UID 30000 :bashsudo chown -R 30000:30000 ~/oxidized-ssh
- Montez le volume au lancement :bash-v ~/oxidized-ssh:/home/oxidized/.ssh
✅ Vérification et accès
Une fois le conteneur lancé :
- API REST :
http://votre-serveur:8888 - Liste des nœuds :
curl http://votre-serveur:8888/nodes
Oxidized va maintenant sauvegarder périodiquement les équipements listés dans votre source (router.db, NetBox…).
🧹 Supprimer et recréer le conteneur
🔗 Liens utiles
Cet article est une adaptation Debian/Ubuntu + Docker de la documentation officielle Oxidized.
