Pourquoi j'ai exécuté 2 instances de trous (et comment je les maintiens synchronisés)
Sommaire
Résumé
-
L'exécution d'une seule instance Pi-trou signifie que votre réseau entier diminue lorsque des mises à jour ou des erreurs de configuration se produisent.
-
Deux instances de trou Pi fournissent une redondance, ce qui signifie que votre réseau peut rester en ligne même lorsque l'un des serveurs est en panne pour les mises à jour, les échanges matériels ou les modifications de configuration.
-
Garder les instances de trous en synchronisation (avec quelque chose comme Nebulasync) est crucial car il permet aux modifications apportées au serveur principal de transférer automatiquement vers la sauvegarde.
Si vous exécutez un serveur Pi-Hole, vous avez probablement, comme moi, des temps d'arrêt lors de la mise à jour ou du redémarrage du serveur. Pour résoudre ce problème, j'ai commencé à exécuter deux instances de trou Pi. Voici comment je l'ai fait, et comment je les maintiens également en synchronisation.
Pourquoi exécuter deux instances de trous de Pi?
J'ai d'abord essayé le Pi-Hole il y a quelques années, et c'était bien en tant que bloqueur de contenu et gestionnaire DNS. Cependant, chaque fois que je devais faire la maintenance de la machine dans laquelle il se trouvait, tout mon réseau baisait. Pi-Hole était mon seul fournisseur DNS et, sans cela, mes ordinateurs ne savaient pas comment accéder à Internet.
Alors, j'ai abandonné le voyage de trou Pi pour cette époque. Quelques années après cela, j'ai vu quelqu'un exécuter deux instances de trous de Pi, et cela m'a intrigué pourquoi. La réponse est simple et la solution à mon problème précédent: la redondance.
En rapport
Pourquoi devriez-vous changer votre serveur DNS aujourd'hui
Vous utilisez toujours le serveur DNS par défaut de votre FAI? Changer aujourd'hui et récolter les avantages.
La plupart des routeurs peuvent utiliser deux serveurs DNS pour la redondance. Avec une seule instance de trou Pi, vous comptez sur un seul serveur DNS. Cependant, si vous avez deux trous de Pi distincts, il y a à la fois un primaire et un secondaire.
Avec ce type de configuration, quand un trou Pi descend, l'autre prend sa place. Quand j'ai refait mon homelab, c'est exactement ce que j'ai fait. Mon serveur d'applications principal exécute mon instance Pi-trou principale, mais j'ai également un ancien Raspberry Pi 3 B qui exécute une instance Pi-trou de sauvegarde.
Raspberry Pi 3 B
Le Raspberry Pi 3 B est un ordinateur monomoteur (SBC) avec un processeur quad-core à 1,2 GHz et 1 Go de RAM. Avec Gigabit Ethernet et la sortie HDMI, cela permet un excellent petit appareil de faible puissance pour exécuter des services à domicile ou à la maison comme un assistant à domicile, Homebridge, Pi-Hole ou d'autres logiciels.
Si le PI 3B baisse, rien ne se passe, car mon instance Pi-trou principale est définie comme le serveur DNS principal. Cependant, si mon serveur d'applications tombe en panne pour une raison quelconque, le PI 3B reprend la sauvegarde.
Pourquoi un serveur tomberait-il? Eh bien, un certain nombre de raisons. Le principal est simplement de mettre à jour le trou Pi. La mise à jour du conteneur Docker ou de l'hôte peut le faire tomber pendant plusieurs secondes ou même plus, selon le matériel sur lequel vous exécutez un trou pi-trou. Si quelque chose se produit et qu'un fichier de configuration est gâché ou corrompu, il pourrait être hors ligne encore plus longtemps.
En rapport
Docker pour les débutants: tout ce que vous devez savoir
Apprenez à utiliser cet outil de développement incroyablement populaire.
Une autre raison pourrait simplement être la maintenance du serveur. Je pourrais fermer la machine virtuelle qui abrite le conteneur Docker pour y ajouter plus de RAM, ou même arrêter le serveur entier si je le déplace dans le rack ou que je fais de la maintenance aux câbles de mise en réseau qui l'entourent.
Il existe de nombreuses raisons pour lesquelles un serveur de trou Pi pourrait se déconnecter. Donc, dans mon réseau maintenant, si le serveur principal s'arrête, le trous de sauvegarde entre en jeu et que tout continue de se retirer.
L'importance de la synchronisation des instances
Bien que le fait d'avoir deux instances de trous de Pi soit la moitié de la bataille, vous ne devriez pas vous arrêter là. Avoir deux installations de Pi-Hole qui se déroule sur des machines séparées suffit pour la redondance, mais vous voudrez également les garder en synchronisation.
Pourquoi? Garder les instances de trou Pi synchronisé signifie que les modifications que vous apportez sur le serveur principal sont déplacées vers la sauvegarde. Je fais souvent de petits ajustements à ma configuration de trou pi-trou. Cela pourrait être aussi simple que de modifier ce qu'est mon serveur DNS en amont, ou d'ajouter un domaine à la liste Autoriser / Deny, ou même aussi complexe que d'ajouter des enregistrements DNS pour les résolutions de domaine local.
Il y a environ une semaine, ma femme a cliqué sur un résultat d'annonce sur Google Search uniquement pour constater qu'il a été bloqué par Pi-Hole. Elle clique fréquemment à ces résultats supérieurs (comme moi), alors elle a demandé si je pouvais résoudre ce problème. J'ai ajouté « www.googleadservices.com » à la liste d'autorisation et à Presto, ces meilleurs liens fonctionnent maintenant. Cela fonctionne également lorsque certaines fonctions de suivi des services populaires rompent avec les listes de blocage de contenu de Pi-Hole, que vous pouvez modifier pour permettre certaines choses.
Indépendamment des changements que je fais, je les veux sur les deux installations de trou Pi. Je pourrais copier manuellement les changements, mais cela demande beaucoup de travail et n'est tout simplement pas nécessaire.
Au lieu de cela, j'ai commencé avec un service appelé orbitalsync pour garder les deux trous de synchronisation en synchronisation. Cependant, j'ai depuis migré vers Nebulasync car il incluait le support V6 Pi-Hole dès le début. Avec Nébulasync, vous lui dites les informations du serveur pour vos installations primaires et secondaires (tertiaires, quateraires, et aussi beaucoup que vous avez), et lui donnez des informations d'identification de connexion, et il gère le processus à partir de là.
Comment garder deux instances de trous de Pi en synchronisation
Nebulasync est un conteneur Docker que vous pouvez exécuter sur n'importe quel hôte Docker. J'utilise Portainer pour gérer mes conteneurs Docker, et cela le rend assez simple.
Vous constaterez que le référentiel GitHub pour Nebulasync a un fichier Docker Compose dans la lecture qui a tout ce dont vous avez besoin pour commencer. Remplacez simplement les caractères d'espace réservé par votre adresse et votre mot de passe du serveur principal et secondaire, et il sera opérationnel. Le chronomètre inclus devrait fonctionner une fois par heure.
En rapport
Qu'est-ce qu'un travail cron et comment les utilisez-vous?
L'utilitaire CRON est utilisé pour exécuter des scripts et des commandes à intervalles réguliers, et à des moments et des dates précis.
Alors que le support V6 Pi-Hole d'OrbitalSync est toujours en version bêta, Nebulasync prend en charge la dernière version de la porte. C'est l'une des raisons pour lesquelles j'ai récemment passé d'Orbitalsync à Nebulasync. Quel que soit le logiciel que vous choisissez, j'ai eu beaucoup de succès avec les deux. Nebulasync semble juste être un peu plus actif dans le développement et l'équipe semble avoir un peu plus de temps derrière.
Nebulasync est écrit en Go et est livré avec une méthode d'installation alternative si vous n'êtes pas un ventilateur Docker. Il existe des instructions d'installation binaire nébulasync, mais Docker est le moyen préféré et recommandé d'exécuter le nébulasync.
Maintenant que vous avez un trou pi-et fonctionnant sur deux appareils, en synchronisant toutes les heures, pourquoi ne pas donner au bloqueur de contenu un lifting du visage? Découvrez comment j'ai changé le thème de mes installations de trou Pi pour être un peu plus amusant et agréable à regarder.