Ceci est une ancienne révision du document !
= Script de synchronisation PiHole =
Vue d'ensemble
Ce script permet de synchroniser une configuration PiHole depuis un serveur Mikrotik (source de vérité) vers deux serveurs Ubuntu. Il gère la copie des fichiers de configuration, des bases de données et des règles DNS personnalisées.
Architecture
Serveurs
* 'Source de vérité' : Mikrotik (192.168.2.1)
Stockage : <code>/usb1/etc/pihole/</code> et <code>/usb1/etc/dnsmasq.d/</code>
Utilisateur : piholesync
* 'Serveurs cibles' : Ubuntu (192.168.2.8 et 192.168.2.9)
Stockage : <code>/etc/pihole/</code> et <code>/etc/dnsmasq.d/</code>
Utilisateur : piholesync avec droits sudo
Fichiers synchronisés
* 'PiHole' :
gravity.db (base de données principale)
custom.list (règles personnalisées)
local.list (règles locales)
* 'DNSMasq' :
05-pihole-custom-cname.conf (règles CNAME)
Fonctionnalités
Système de backup
* Localisation :
/var/backup/pihole-sync/
* Rotation automatique : Conservation de 7 jours * Structure : Un sous-dossier par serveur et par date * Contenu : Copie complète de /etc/pihole et /etc/dnsmasq.d
Logging
* Fichiers :
/var/log/pihole-sync/sync.log
* Rotation : Quotidienne avec conservation de 7 jours * Format :
[TIMESTAMP] Message
* Niveaux : Info et Debug (avec –debug)
Sécurité
* Authentification SSH par clés * Utilisateur dédié (piholesync) * Permissions sudo limitées * Vérification des droits avant exécution
Processus de synchronisation
1. Vérifications préalables
# Rotation des logs # Vérification de l'existence des fichiers source # Test des droits sudo sur tous les serveurs # Création des backups
2. Copie depuis Mikrotik
# Création d'un dossier temporaire # Copie des fichiers via SFTP # Vérification de l'intégrité (taille, format SQLite) # Synchronisation du fichier CNAME
3. Déploiement
# Arrêt des services PiHole # Synchronisation des fichiers via rsync # Correction des permissions # Reconstruction des bases gravity # Redémarrage des services
Utilisation
Prérequis
# Configuration SSH avec clés pour piholesync # Droits sudo pour piholesync sur les commandes : #* rsync #* pihole # Répertoires de logs et backups créés avec bonnes permissions
Commandes
<syntaxhighlight lang=“bash”> # Exécution normale ./pihole-sync.sh
# Mode simulation ./pihole-sync.sh –dry-run
# Mode debug ./pihole-sync.sh –debug
# Aide ./pihole-sync.sh –help </syntaxhighlight>
Options
* '–dry-run' : Simulation sans modification
* '–debug' : Affichage des messages de debug
Résolution des problèmes
Logs à vérifier
#
/var/log/pihole-sync/sync.log
# Journaux système (
journalctl
) # Logs PiHole (
/var/log/pihole/pihole.log
)
Problèmes courants
; Erreur SSH : Vérifier les clés et permissions ; Erreur sudo : Contrôler le fichier sudoers ; Fichiers invalides : Vérifier l'espace disque et les permissions ; Services non redémarrés : Relancer manuellement
pihole -g
Maintenance
Tâches quotidiennes
* Vérification des logs * Contrôle des backups * Validation du fonctionnement DNS
Tâches hebdomadaires
* Nettoyage des vieux backups * Vérification de l'espace disque * Test de restauration
Tâches mensuelles
* Rotation des clés SSH * Audit des permissions * Test de recovery complet
