I'm setting up a full automatic master slave servers with a multi blind masters (directadmin servers).
So that more Directadmins can work with 2 DNS slaves as the DNS server for you.
The master script on your DirectAdmin
/root/dns_slaves_notify.sh
-----------------------------------
#!/bin/bash
slave1="ipaddress slave 1 server"
slave2="ipaddress slave 2 server"
MASTERIP="IP address this directadmin server"
/bin/ls -1 /var/named/*.db|/bin/cut -f4 -d/|/bin/sed 's/.db//' > /root/dns_new.list
NEWDOMAIN=`/usr/bin/diff /root/dns_new.list /root/dns_old.list |tail -1|sed 's/< //'`
if [ $NEWDOMAIN ];then
/usr/bin/ssh $slave1 "/root/makeslave.sh $NEWDOMAIN $MASTERIP"
/usr/bin/ssh $slave2 "/root/makeslave.sh $NEWDOMAIN $MASTERIP"
/bin/cp dns_new.list dns_old.list
fi
-----------------------------------
Add in your /var/spool/cron
* * * * * /root/dns_slaves_notify.sh > /dev/null
The two slave servers
Create a ssh login with a auth key
The slave script on the DNS server
/root/makeslave.sh
-----------------------------------
#!/bin/bash
# Create the slave
/bin/echo "zone \"$1\" {type slave; file \"/var/named/$1.hosts\";masters { $2; }; };" >> /var/named/chroot/etc/named_directadminserver_1.slave.conf
/usr/sbin/rndc reload
-----------------------------------
Just put in your named.conf
include "/etc/named_directadminserver_1.slave.conf";
To Do list (please help me with some sugestions
1 remove domains automatic on the slaves
2 find a solution on de directadmins not to use a cron ( I don't like proccesses are done for nothing).
So that more Directadmins can work with 2 DNS slaves as the DNS server for you.
The master script on your DirectAdmin
/root/dns_slaves_notify.sh
-----------------------------------
#!/bin/bash
slave1="ipaddress slave 1 server"
slave2="ipaddress slave 2 server"
MASTERIP="IP address this directadmin server"
/bin/ls -1 /var/named/*.db|/bin/cut -f4 -d/|/bin/sed 's/.db//' > /root/dns_new.list
NEWDOMAIN=`/usr/bin/diff /root/dns_new.list /root/dns_old.list |tail -1|sed 's/< //'`
if [ $NEWDOMAIN ];then
/usr/bin/ssh $slave1 "/root/makeslave.sh $NEWDOMAIN $MASTERIP"
/usr/bin/ssh $slave2 "/root/makeslave.sh $NEWDOMAIN $MASTERIP"
/bin/cp dns_new.list dns_old.list
fi
-----------------------------------
Add in your /var/spool/cron
* * * * * /root/dns_slaves_notify.sh > /dev/null
The two slave servers
Create a ssh login with a auth key
The slave script on the DNS server
/root/makeslave.sh
-----------------------------------
#!/bin/bash
# Create the slave
/bin/echo "zone \"$1\" {type slave; file \"/var/named/$1.hosts\";masters { $2; }; };" >> /var/named/chroot/etc/named_directadminserver_1.slave.conf
/usr/sbin/rndc reload
-----------------------------------
Just put in your named.conf
include "/etc/named_directadminserver_1.slave.conf";
To Do list (please help me with some sugestions
1 remove domains automatic on the slaves
2 find a solution on de directadmins not to use a cron ( I don't like proccesses are done for nothing).