Связаться со мной:
1 заметка с тегом

bind

Автоматическое добавление новых доменов на slaveDNS(bind9)

Скрипт смотрит в конфиг named.conf на мастере на наличие новых доменов. И при появлении новых доменов добавляет их в named.conf на slave сервере. Написан на питоне.
На мастер сервере нужно создать пользователя и добавить его в группу bind, чтобы у него были права на чтение named.conf. Также на master нужно разрешить трансфер зон.

allow-transfer { ip-slave_сервера; };

На slave сервере нужно настроить ssh авторизацию по ключам с master сервером для этого юзера.
Затем получаем сам скрипт и перенесем его в /usr/bin

git clone https://github.com/shmulya/zonefetch
mv zonefetch/fetch.py /usr/bin/fetch.py

Правим там переменные:
MASTERIP — ip master сервера(можно указать несколько серверов в формате [’ip1’,’ip2’])
REMOTE_USERNAME — юзер master сервера у которого есть права на чтение named.conf
PATH_TO_MASTER_ZONEFILE — файл с зонами на master
PATH_TO_SLAVE_ZONEFILE — каталог для файлов с зонами на slave

Скрипт пишет зоны в файлы вида /etc/bind/ip.conf, например для master с ip — 192.168.0.1 это будет /etc/bind/192.168.0.1.conf.
Эти файлы нужно создать предварительно и добавить соответствующие инклуды в /etc/named.conf, например:

include "/etc/bind/192.168.0.1.conf";

В конце добавим скрипт в крон примерно так

*/5 * * * * /usr/bin/python /usr/bin/fetch.py >> /var/log/zonefetch.log 2>&1
2017   bind   debian   DNS