Hi,

On commence l’année par la reprise des travaux sur ma petite infrastructure personnelle. Nous en sommes au stade où nous pouvons poser le premier conteneur pour gérer nos entrées DNS. Nous reviendrons au DNSSEC dans quelques jours, le temps que je mette en place de quoi stocker de façon sûre les clés (c’est à dire hors de mon dépôt GitHub). Mais avant ça, il y a déjà de quoi occuper.

Préparation du conteneur

Première étape : il faut créer sur la machine hôte le conteneur qui contiendra le serveur DNS. Pour cela, j’ai rajouté une classe tsacha_hypervisor::dns à mon module hypervisor dans Puppet. À l’intérieur, je fais appel à mon script de génération de conteneurs avec les arguments qui vont bien. Les variables sont toujours remplies avec Puppet Dashboard.

Avant de démarrer le conteneur, je lui greffe quelques dossiers qui nous serviront plus tard ainsi que les deux blocs qui vont servir à chrooter Bind. Il m’est en effet impossible de faire un mknod depuis le conteneur, j’en profite donc d’être à l’extérieur pour le faire.

Provisionning du conteneur

Lors de la génération du conteneur, j’ai bien fait attention de lancer Puppet au démarrage du système. Il demandera donc automatiquement sa configuration au serveur Puppet et pourra être configuré automatiquement et dès le début, sans intervention humaine. Un léger prérequis : le hostname du conteneur doit être dans le fichier /etc/puppet/autosign.conf du Puppet Master. À noter la possibilité d’utiliser des jokers :

*.oslo.s.tremoureux.fr
oslo.s.tremoureux.fr

Déroulement de l’installation de Bind

Puppet Dashboard est configuré pour appeler un nouveau module tsacha_dns. Toutes les opérations qu’il effectue sont basées sur le wiki de Debian sur Bind9 disponible ici. Dans l’ordre :

Et voilà pour cette partie !