Installer PowerDNS Admin

Dans cette partie, nous allons voir comment installer PowerDNS Admin avec Nginx.

Installation des dépendances requises.

En premier, il va nous falloir installer quelques dépendances requise avec cette commande :

apt-get install nginx python3-dev libsasl2-dev libldap2-dev libssl-dev libxml2-dev libxslt1-dev libxmlsec1-dev libffi-dev pkg-config apt-transport-https virtualenv build-essential libmariadb-dev git python3-flask -y

Une fois toutes ces dependances installées, on ajoute le repository de Node.js :

curl -sL https://deb.nodesource.com/setup_14.x | bash -

Plus qu'à l'installer :

apt-get install nodejs -y

Il va nous falloir aussi le repo de yarn :

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -

echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list

On update apt et on installe Yarn :

apt-get update -y
apt-get install yarn -y

A partir de là, toutes les dépendances requises sont installées. On peut s'attaquer à la suite.

Télécharger PowerDNS Admin

On va télécharger la dernière version de PowerDNS Admin depuis le repo Git dans le répertoire racine du serveur web Nginx :

git clone https://github.com/ngoduykhanh/PowerDNS-Admin.git /var/www/html/pdns

Déplacez vous dans le repertoire précedemment clone et créer un environnement virtuel Python :

cd /var/www/html/pdns/
virtualenv -p python3 flask

Plus qu'à activer l'environnement virtuel et installer les dépéndances Python :

source ./flask/bin/activate
pip install -r requirements.txt

L'environnement virtuel se désactive avec cette commande :

deactivate
Configurer la connexion à la database

Ensuite, nous allons configurer la connexion à la base mysql de PowerDNS dans le fichier default_config.py :

nano /var/www/html/pdns/powerdnsadmin/default_config.py

Editez les lignes suivantes :

SALT = 'yoursecretekey' <-- 
SECRET_KEY = 'yoursecretekey'
BIND_ADDRESS = '0.0.0.0'
PORT = 9191
HSTS_ENABLED = False
OFFLINE_MODE = False

SQLA_DB_USER = 'pdnsadmin'
SQLA_DB_PASSWORD = 'password'
SQLA_DB_HOST = '127.0.0.1'
SQLA_DB_NAME = 'pdns'
SQLALCHEMY_TRACK_MODIFICATIONS = True

Save and close the file then change the directory to the pdns and activate the virtual environment:

cd /var/www/html/pdns/ source ./flask/bin/activate Next, update the database with the following command:

export FLASK_APP=powerdnsadmin/init.py flask db upgrade yarn install --pure-lockfile flask assets build Next, deactivate the virtual environment with the following command:

deactivate Enable PowerDNS Admin API PowerDNS admin uses JSON API for reading statistics and modifying zone content, metadata and DNSSEC key material. You can enable it by editing the file pdns.conf:

nano /etc/powerdns/pdns.conf Change the following lines:

api=yes api-key=yoursecretekey Save and close the file then restart the PowerDNS service to apply the changes:

systemctl restart pdns


Revision #1
Created 17 April 2021 11:52:47 by MattProd
Updated 17 April 2021 12:28:13 by MattProd