PowerDNS-Admin (Ubuntu): Unterschied zwischen den Versionen

Aus Tutorials
Zur Navigation springen Zur Suche springen
Zeile 142: Zeile 142:
WantedBy=sockets.target
WantedBy=sockets.target
</pre>
</pre>


<pre>
<pre>

Version vom 25. Januar 2020, 18:49 Uhr

Voraussetzungen

Git-Client siehe hier: Git


Sonstige benötigte Pakete:

Ob das Package ibmariadbclient-dev oder libmysqlclient-dev hängt von der verwendetetn Datenbank ab.

sudo apt-get install -y libmariadbclient-dev libsasl2-dev libldap2-dev libssl-dev libxml2-dev libxslt1-dev libxmlsec1-dev libffi-dev pkg-config apt-transport-https virtualenv build-essential


NodeJs:

sudo curl -sL https://deb.nodesource.com/setup_10.x | sudo bash -
sudo apt-get install -y nodejs


Yarn:

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update -y
sudo apt-get install -y yarn

Installation

Datenbank

create database if not exists powerdns_admin;
grant all on powerdns_admin.* to 'powerdns'@'localhost'; 

Repository klonen

Um git nicht als root ausführen zu müssen, das Installationsverzeichnis vorab erstellen und dem eigenen Benutzer zuweisen:

sudo mkdir -p /opt/web/powerdns-admin	
sudo chown <user>:<user> /opt/web/powerdns-admin
git clone https://github.com/ngoduykhanh/PowerDNS-Admin.git /opt/web/powerdns-admin

Installieren

cd /opt/web/powerdns-admin/
virtualenv -p python3 flask
source ./flask/bin/activate
pip install -r requirements.txt


vi /opt/web/powerdns-admin/powerdnsadmin/default_config.py
SQLA_DB_USER = 'powerdns'
SQLA_DB_PASSWORD = '<password>'
SQLA_DB_HOST = '127.0.0.1'
SQLA_DB_NAME = 'powerdns_admin'
export FLASK_APP=powerdnsadmin/__init__.py
flask db upgrade
yarn install --pure-lockfile
flask assets build


./run.py

API-Key

Siehe dazu PowerDNS Authoritative Server (Ubuntu)#API für PowerDNS-Admin.

Konfiguration

systemd

sudo vi /etc/systemd/system/powerdns-admin.service
[Unit]
Description=PowerDNS-Admin
Requires=powerdns-admin.socket
After=network.target

[Service]
PIDFile=/run/powerdns-admin/pid
User=pdns
Group=pdns
WorkingDirectory=/opt/web/powerdns-admin
ExecStart=/opt/web/powerdns-admin/flask/bin/gunicorn --pid /run/powerdns-admin/pid --bind unix:/run/powerdns-admin/socket 'powerdnsadmin:create_app()'
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target


sudo vim /etc/systemd/system/powerdns-admin.socket


[Unit]
Description=PowerDNS-Admin socket

[Socket]
ListenStream=/run/powerdns-admin/socket

[Install]
WantedBy=sockets.target


sudo vim /etc/tmpfiles.d/powerdns-admin.conf
d /run/powerdns-admin 0755 pdns pdns -


sudo systemctl daemon-reload; sudo systemctl restart powerdns-admin.socket; sudo systemctl enable powerdns-admin.socket

Links

https://github.com/ngoduykhanh/PowerDNS-Admin/wiki/Running-PowerDNS-Admin-with-Systemd,-Gunicorn--and--Nginx

Apache

sudo -i
apt install apache2-dev
virtualenv -p python3 flask
source ./flask/bin/activate
pip3 install mod-wsgi
mod_wsgi-express install-module > /etc/apache2/mods-available/wsgi.load
a2enmod wsgi
systemctl restart apache2
exit

Links

https://github.com/ngoduykhanh/PowerDNS-Admin/wiki/WSGI-Apache-example

Links

https://github.com/ngoduykhanh/PowerDNS-Admin/wiki/Running-PowerDNS-Admin-on-Ubuntu-or-Debian

https://computingforgeeks.com/install-powerdns-and-powerdns-admin-on-ubuntu-18-04-debian-9-mariadb-backend/

https://blog.jonaharagon.com/installing-powerdns-admin-on-ubuntu-18-04/

https://github.com/ngoduykhanh/PowerDNS-Admin


Zurück zu Domain selbst verwalten