We decided to just pay dyn.com for their services, but this info is still valid.
http://www.howtoforge.com/installing-powerdns-with-mysql-backend-and-poweradmin-on-centos-5.2
http://www.misdivision.com/blog/create-your-own-dynamic-dns-service-using-powerdns-and-mysql
http://gnudip2.sourceforge.net
Here we provide a dynamic DNS service using PowerDNS and MySQL.
You will also use two working name servers, presumably your own.
Here we install the packages and set the MySQL root password. Adjust as necessary:
yum install pdns pdns-backend-mysql mysql-server vim-enhanced chkconfig mysqld on chkconfig pdns on service mysqld start mysqladmin -u root password 'new-password' mysqladmin -u root -h [your-server-fqdn] password 'new-password'
Now we log in to MySQL:
mysql -u root -p
Now, at the MySQL prompt, we configure MySQL permissions.
MySQL User ID | Purpose |
---|---|
root | Master MySQL Administrator |
powerdns | PowerDNS Database User |
power_admin | PowerAdmin Database User (limited) |
Adjust as necessary:
CREATE DATABASE powerdns; GRANT ALL ON powerdns.* TO 'powerdns'@'localhost' IDENTIFIED BY 'your_powerdns_password'; GRANT ALL ON powerdns.* TO 'powerdns'@'[your-server-fqdn]' IDENTIFIED BY 'your_powerdns_password'; GRANT SELECT, INSERT, UPDATE, DELETE ON powerdns.* TO 'power_admin'@'localhost' IDENTIFIED BY 'your_power_admin_password'; GRANT SELECT, INSERT, UPDATE, DELETE ON powerdns.* TO 'power_admin'@'[your-server-fqdn]' IDENTIFIED BY 'your_power_admin_password'; FLUSH PRIVILEGES;
Now we create the database:
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 ); quit;
vim /etc/pdns/pdns.conf
Add the following lines to 'Launch' section of pdns.conf:
################################# # launch Which backends to launch and order to query them in # # launch= launch=gmysql gmysql-host=127.0.0.1 gmysql-user=powerdns gmysql-password=your_powerdns_password gmysql-dbname=powerdns
Start PowerDNS:
service pdns start
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 php-pear-DB php-pear-MDB2-Driver-mysql
Start web server:
chkconfig httpd on /etc/init.d/httpd start
Get the latest PowerAdmin and install it:
wget https://github.com/downloads/poweradmin/poweradmin/poweradmin-2.1.6.tgz tar xvfz poweradmin-2.1.6.tgz mv poweradmin-2.1.6 /var/www/html/poweradmin touch /var/www/html/poweradmin/inc/config.inc.php chown -R apache:apache /var/www/html/poweradmin/
Begin the web install using the FQDN or the server's IP address:
http://[your-server-fqdn]/poweradmin/install
Installation Step | Action |
---|---|
Installation step 1 | Choose your language |
Installation step 2 | Read then go to step 3 |
Installation step 3 | Username: powerdns |
Password: your_powerdns_password | |
Hostname: localhost | |
Database: powerdns | |
Poweradmin administrator password: your_powerdns_web_admin_password | |
Installation step 4 | Username: power_admin |
Password: your_power_admin_password | |
Hostmaster: Your DNS admin e-mail address with '@' changed to '.' | |
Primary nameserver: ns1.yourdomain.com | |
Secondary nameserver: ns2.yourdomain.com | |
Installation step 5 | Skip this step because we already set it up |
Installation step 6 | Read and then go to step 7 |
Installation step 7 | Read |
Back at the command line:
rm -rf /var/www/html/poweradmin/install
touch /.autorelabel reboot