Installation serveur · 5 min read · Oct 01, 2025

Installation de PowerDNS (avec backend MySQL) et Poweradmin sur CentOS 5.2

Installation de PowerDNS (avec backend MySQL) et Poweradmin sur CentOS 5.2

Version 1.0
Auteur : Falko Timme

Cet article montre comment vous pouvez installer le serveur de noms PowerDNS (avec backend MySQL) et le panneau de contrôle Poweradmin pour PowerDNS sur un système CentOS 5.2. PowerDNS est un serveur de noms autoritaire à haute performance - dans la configuration décrite ici, il lira les enregistrements DNS à partir d’une base de données MySQL (similaire à MyDNS), bien que d’autres backends tels que PostgreSQL soient également pris en charge. Poweradmin est un panneau de contrôle basé sur le web pour PowerDNS.

Je ne donne aucune garantie que cela fonctionnera pour vous !

1 Remarque préliminaire

Dans cet exemple, j’utilise un hôte CentOS 5.2 avec le nom d’hôte server1.example.com et l’adresse IP 192.168.0.100, configuré selon les 6 premiers chapitres de ce tutoriel : Le Serveur Parfait - CentOS 5.2.

Je vais configurer juste un serveur PowerDNS dans cet exemple (un maître) ; l’ajout de PowerDNS esclave(s) peut facilement être réalisé en utilisant la réplication de base de données MySQL du maître vers l(es) esclave(s), donc aucun transfert de zone n’est nécessaire (cela est encore une fois similaire à MyDNS). La réplication de base de données MySQL peut être configurée selon ce tutoriel : Comment configurer la réplication de base de données dans MySQL (PowerDNS prend également en charge les transferts de zone natifs (pour les scénarios où vous ne pouvez pas utiliser la réplication MySQL) - voir http://downloads.powerdns.com/documentation/html/replication.html).

2 Installation de MySQL

Pour installer MySQL, nous faisons ceci :

yum install mysql mysql-server

Ensuite, nous créons les liens de démarrage système pour MySQL (afin que MySQL démarre automatiquement chaque fois que le système démarre) et démarrons le serveur MySQL :

chkconfig --levels 235 mysqld on  
/etc/init.d/mysqld start

Maintenant, vérifiez que le réseau est activé. Exécutez

netstat -tap | grep mysql

Cela devrait afficher quelque chose comme ceci ( *:mysql signifie que MySQL écoute sur toutes les interfaces, ce qui est important pour la réplication MySQL !) :

[root@server1 ~]# netstat -tap | grep mysql  
tcp        0      0 *:mysql                     *:*                         LISTEN      2439/mysqld  
[root@server1 ~]#

Si ce n’est pas le cas, éditez /etc/my.cnf et commentez l’option skip-networking :

vi /etc/my.cnf

| [...] #skip-networking [...] |

et redémarrez votre serveur MySQL :

/etc/init.d/mysqld restart

Exécutez

mysqladmin -u root password yourrootsqlpassword  
mysqladmin -h server1.example.com -u root password yourrootsqlpassword

pour définir un mot de passe pour l’utilisateur root (sinon, n’importe qui peut accéder à votre base de données MySQL !).

3 Installation de PowerDNS

Pour installer PowerDNS, nous exécutons

yum install pdns pdns-backend-mysql

La configuration de PowerDNS se trouve dans le répertoire /etc/pdns - j’y reviendrai dans un instant.

Maintenant, nous nous connectons à MySQL :

mysql -u root -p

Tapez votre mot de passe root MySQL, et vous devriez être sur le shell MySQL. Sur le shell MySQL, nous créons une base de données pour PowerDNS :

CREATE DATABASE powerdns;

Ensuite, nous créons un utilisateur de base de données (powerdns) pour PowerDNS :

GRANT ALL ON powerdns.* TO 'power_admin'@'localhost' IDENTIFIED BY 'power_admin_password';  
GRANT ALL ON powerdns.* TO 'power_admin'@'localhost.localdomain' IDENTIFIED BY 'power_admin_password';  
FLUSH PRIVILEGES;

(Remplacez power_admin_password par un mot de passe de votre choix.)

Maintenant, nous créons les tables nécessaires pour PowerDNS…

USE powerdns;
CREATE TABLE domains (  
id INT auto_increment,  
name VARCHAR(255) NOT NULL,  
master VARCHAR(128) DEFAULT NULL,  
last_check INT DEFAULT NULL,  
type VARCHAR(6) NOT NULL,  
notified_serial INT DEFAULT NULL,  
account VARCHAR(40) DEFAULT NULL,  
primary key (id)  
);
CREATE UNIQUE INDEX name_index ON domains(name);
CREATE TABLE records (  
id INT auto_increment,  
domain_id INT DEFAULT NULL,  
name VARCHAR(255) DEFAULT NULL,  
type VARCHAR(6) DEFAULT NULL,  
content VARCHAR(255) DEFAULT NULL,  
ttl INT DEFAULT NULL,  
prio INT DEFAULT NULL,  
change_date INT DEFAULT NULL,  
primary key(id)  
);
CREATE INDEX rec_name_index ON records(name);  
CREATE INDEX nametype_index ON records(name,type);  
CREATE INDEX domain_id ON records(domain_id);
CREATE TABLE supermasters (  
ip VARCHAR(25) NOT NULL,  
nameserver VARCHAR(255) NOT NULL,  
account VARCHAR(40) DEFAULT NULL  
);

… et enfin quittez le shell MySQL :

quit;

Maintenant, nous devons configurer PowerDNS afin qu’il utilise le backend MySQL :

vi /etc/pdns/pdns.conf

Ajoutez les lignes suivantes à pdns.conf :

| [...] ################################# # launch Quels backends lancer et l'ordre dans lequel les interroger # # launch= launch=gmysql gmysql-host=127.0.0.1 gmysql-user=power_admin gmysql-password=power_admin_password gmysql-dbname=powerdns [...] |

Ensuite, créez les liens de démarrage système pour PowerDNS et démarrez-le :

chkconfig --levels 235 pdns on  
/etc/init.d/pdns start

C’est tout, PowerDNS est maintenant prêt à être utilisé. Pour en savoir plus à son sujet, veuillez vous référer à sa documentation : http://downloads.powerdns.com/documentation/html/index.html

4 Installation de Poweradmin

Maintenant, installons Poweradmin, un panneau de contrôle basé sur le web pour PowerDNS. Poweradmin est écrit en PHP, donc nous devons installer un serveur web (j’utilise Apache2 dans cet exemple) et PHP :

yum install httpd php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mhash gettext

Créez les liens de démarrage système pour Apache2 et démarrez-le :

chkconfig --levels 235 httpd on  
/etc/init.d/httpd start

Poweradmin nécessite également les deux packages PEAR suivants :

yum install php-pear-DB php-pear-MDB2-Driver-mysql

Maintenant, tous les prérequis pour Poweradmin sont installés, et nous pouvons commencer l’installation de Poweradmin (je vais l’installer dans un sous-répertoire de /var/www/html - /var/www/html est le répertoire racine des documents du site web par défaut d’Apache sur CentOS ; si vous avez créé un vhost avec un répertoire racine différent, veuillez ajuster les chemins).

Allez sur https://www.poweradmin.org/trac/wiki/GettingPoweradmin et téléchargez le dernier package Poweradmin, par exemple comme suit :

cd /tmp  
wget https://www.poweradmin.org/download/poweradmin-2.1.2.tgz

Ensuite, installez-le dans le répertoire /var/www/html/poweradmin comme suit :

tar xvfz poweradmin-2.1.2.tgz  
mv poweradmin-2.1.2 /var/www/html/poweradmin  
touch /var/www/html/poweradmin/inc/config.inc.php  
chown -R apache:apache /var/www/html/poweradmin/

Maintenant, ouvrez un navigateur et lancez l’installateur web de Poweradmin ( http://server1.example.com/poweradmin/install ou http://192.168.0.100/poweradmin/install).

Sélectionnez votre langue (anglais ou néerlandais) :

Cliquez sur le bouton Aller à l’étape 3 pour continuer :

Maintenant, remplissez vos détails de base de données. Il est important que vous remplissiez les détails pour l’utilisateur root MySQL, pas l’utilisateur MySQL powerdns que nous avons créé plus tôt ! Fournissez également un mot de passe pour l’utilisateur admin pour l’interface web de Poweradmin (c’est le mot de passe que l’utilisateur admin utilisera pour se connecter à Poweradmin plus tard) :

À la page suivante, remplissez les détails pour l’utilisateur MySQL power_admin que nous avons créé au chapitre 3. Remplissez également les deux serveurs de noms par défaut qui seront utilisés dans vos zones, sauf si vous fournissez des serveurs de noms différents lorsque vous créez une zone (typiquement, ce sont les noms du système actuel et du serveur esclave (pour lequel vous pouvez configurer la réplication MySQL, voir mes notes préliminaires au chapitre 1)) :

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.