Aller au contenu
medium

Installer et configurer PowerDNS-Admin facilement

6 min de lecture

PowerDNS-Admin

Après avoir installé et configuré PowerDNS, il est temps de passer à l’étape suivante : simplifier sa gestion grâce à une interface graphique intuitive. Voici donc la suite de notre guide, où je vais vous expliquer comment installer et configurer PowerDNS-Admin sur un système Ubuntu/Debian.

PowerDNS-Admin offre une gamme de fonctionnalités pour simplifier et améliorer la gestion des serveurs DNS :

  • Interface web intuitive : Accès facile à toutes vos configurations DNS via un tableau de bord.
  • Multi-serveurs : Gérez plusieurs serveurs PowerDNS depuis une seule interface.
  • Gestion des zones DNS : Créez, modifiez et supprimez des zones et des enregistrements DNS en quelques clics.
  • Support DNSSEC : Activez et gérez DNSSEC pour sécuriser vos zones DNS.
  • Gestion des utilisateurs : Contrôlez l’accès avec plusieurs rôles (administrateurs, utilisateurs standards).
  • Tableaux de bord et statistiques : Visualisez des métriques importantes pour surveiller vos DNS.
  • Intégration API : Automatisez vos tâches avec une API REST intégrée.
  • Historique des modifications : Suivez les changements grâce à un journal détaillé.

Avec ces fonctionnalités, PowerDNS-Admin se présente comme un outil incontournable pour tout administrateur réseau ou système souhaitant optimiser la gestion de ses serveurs DNS.

Dans ce chapitre, je vais vous guider pas à pas pour installer PowerDNS-Admin sur une distribution Ubuntu/Debian. Suivez attentivement chaque étape pour garantir une installation réussie.

  1. Prérequis système

Assurez-vous d’avoir :

Commencez par mettre à jour votre système :

Fenêtre de terminal
sudo apt update && sudo apt upgrade -y
  1. Installer les dépendances nécessaires

Installez les paquets requis pour Python, Node.js et le backend SQL :

Fenêtre de terminal
sudo apt install -y python3-dev git libsasl2-dev libldap2-dev python3-venv \
libmariadb-dev pkg-config build-essential curl libpq-dev nodejs npm libffi-dev

Ajoutez Yarn pour gérer les fichiers front-end :

Fenêtre de terminal
npm install -g yarn
  1. Télécharger PowerDNS-Admin

Clonez le dépôt GitHub de PowerDNS-Admin dans le répertoire de votre choix :

Fenêtre de terminal
sudo -i
mkdir /opt/web
git clone https://github.com/PowerDNS-Admin/PowerDNS-Admin.git /opt/web/powerdns-admin
cd /opt/web/powerdns-admin
  1. Préparer l’environnement Python

Créez et activez un environnement virtuel pour isoler les dépendances :

Fenêtre de terminal
python3 -m venv ./venv
source ./venv/bin/activate

Installez les bibliothèques Python nécessaires :

Fenêtre de terminal
pip install --upgrade pip
pip install -r requirements.txt
  1. Configurer PowerDNS-Admin

Copiez et modifiez le fichier de configuration :

Fenêtre de terminal
cp /opt/web/powerdns-admin/configs/development.py /opt/web/powerdns-admin/configs/production.py
vi /opt/web/powerdns-admin/configs/production.py

Dans le fichier, ajustez ces paramètres :

  • SECRET_KEY : Remplacez-le par une clé aléatoire et sécurisée.

  • SQLALCHEMY_DATABASE_URI : Définissez l’URL de connexion à votre base de données (MySQL ou PostgreSQL). Exemple pour MySQL :

    SQLALCHEMY_DATABASE_URI = 'mysql://powerdnsadmin:secret_password@127.0.0.1/powerdnsadmin'

Exportez la configuration Flask :

Fenêtre de terminal
export FLASK_CONF=../configs/production.py
  1. Configurer la base de données

Connectez-vous à votre base SQL et préparez-la pour PowerDNS-Admin :

Fenêtre de terminal
mysql -u root -p

Puis exécutez :

CREATE DATABASE powerdnsadmin CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON powerdnsadmin.* TO 'powerdnsadmin'@'localhost' IDENTIFIED BY 'secret_password';
FLUSH PRIVILEGES;
EXIT;

Appliquez les migrations de la base de données :

Fenêtre de terminal
export FLASK_APP=powerdnsadmin/__init__.py
python -m pip install --upgrade setuptools
flask db upgrade
  1. Construire les fichiers front-end

Installez les dépendances front-end avec Yarn :

Fenêtre de terminal
yarn install --pure-lockfile

Construisez les fichiers front-end :

Fenêtre de terminal
flask assets build
  1. Tester PowerDNS-Admin

Lancez le serveur pour vérifier le fonctionnement :

Fenêtre de terminal
./run.py

Accédez à l’interface web à l’adresse :

http://<votre-serveur>:9191

Enregistrez-vous. Le premier utilisateur créé sera automatiquement administrateur.

  1. Exécuter PowerDNS-Admin en production

Pour une utilisation en production, configurez PowerDNS-Admin comme un service :

Fenêtre de terminal
sudo groupadd powerdnsadmin
sudo useradd --system -g powerdnsadmin powerdnsadmin
sudo vim /etc/systemd/system/powerdns-admin.service

Exemple de configuration :

[Unit]
Description=PowerDNS-Admin
After=network.target
[Service]
Type=simple
User=powerdnsadmin
Group=powerdnsadmin
WorkingDirectory=/opt/web/powerdns-admin
ExecStart=/opt/web/powerdns-admin/venv/bin/python /opt/web/powerdns-admin/run.py
Restart=always
[Install]
WantedBy=multi-user.target

Appliquer les changements et démarrer le service:

Fenêtre de terminal
sudo systemctl daemon-reload
sudo systemctl enable powerdns-admin --now
  1. Vérification et personnalisation

Assurez-vous que PowerDNS-Admin fonctionne correctement en accédant à l’interface web.

Vous avez maintenant une installation fonctionnelle de PowerDNS-Admin sur votre serveur Ubuntu/Debian. Grâce à cette interface graphique, la gestion de vos zones DNS devient plus intuitive et efficace, que vous gériez un petit projet ou une infrastructure complexe. Avec ses fonctionnalités avancées comme le support multi-serveurs et DNSSEC, vous êtes prêt à optimiser vos opérations DNS.

Mais ce n’est pas tout ! Dans mon prochain guide, nous explorerons comment utiliser le provider Terraform pour automatiser la gestion de vos zones et enregistrements DNS. Une solution idéale pour intégrer PowerDNS dans vos workflows Infrastructure as Code et améliorer encore la scalabilité et l’efficacité de vos configurations.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.