Добавление доменов в DNSmanager из конфигурационного файла BIND
Инструкция на случай когда нужно добавить в DNSmanager доменные зоны, которые присутствуют в конфигурационном файле BIND.
Алгоритм добавления:
- Доменная зона должна принадлежать пользователю DNSmanager. Создайте его и запомните Имя пользователя и Пространство имён DNS. Подробнее см. в статье Создание пользователя.
Откройте конфигурационный файл BIND:
Debian: /etc/bind/named.conf
CentOS: /etc/named.confКаждому пользователю DNSmanager назначается пространство view в конфигурационном файле. Название view соответствует указанному при создании пользователя Пространству имён DNS. Внутри view добавляются все доменные зоны zone пользователя. Например:
view "hoster.me" { allow-transfer { 127.0.0.1; }; match-destinations { 149.154.66.80; }; transfer-source 149.154.66.80; zone "company.my" { type master; file "/etc/bind/hoster.user/company.my"; }; };
BASH
Перенесите нужные доменные зоны в конфигурационном файле во view созданного пользователя.Откройте базу данных DNSmanagerс помощью sqlite:
sqlite3 /usr/local/mgr5/etc/dnsmgr.db
BASHПолучите из базы данных id пользователя:
select id from user where name='<имя пользователя>';
BASHПолучите из базы данных id пространства имён пользователя:
select id from namespace where name='<пространство имён>';
BASHПолучите из базы данных id, который можно использовать для добавляемого домена:
select max(id)+1 from domain;
BASHДобавьте запись о домене в базу данных:
insert into domain ([id],[name],[namespace_id],[user],[dtype]) values ('<id>','<name>','<namespace_id>','<user>','<dtype>');
BASHПояснения<id> — идентификатор, полученный на шаге 7.
<name> — домен.
<namespace_id> — идентификатор пространства имён пользователя, полученный на шаге 6.
<user> — идентификатор пользователя, полученный на шаге 5.
<dtype> — определяет, первичным или вторичным является DNS-сервер для доменной зоны. Если первичным, то укажите "master". Если вторичным — "slave".Если нужно добавить в базу данных большое количество записей, то можно автоматизировать этот процесс:
Укажите все нужные доменные имена в файле.
Создайте файл со скриптом.
#!/bin/bash count=<id> for domain in `cat <file>`; do echo "insert into domain ([id],[name],[namespace_id],[user],[dtype]) values ('$count','$domain','<namespace_id>','<user>','<dtype>');" | sqlite3 /usr/local/mgr5/etc/dnsmgr.db count=$((count+1)) done
BASHПояснения<id> — идентификатор, полученный на шаге 7.
<file> — файл со списком доменных имён.
<namespace_id> — идентификатор пространства имён пользователя, полученный на шаге 6.
<user> — идентификатор пользователя, полученный на шаге 5.
<dtype> — определяет, первичным или вторичным является DNS-сервер для доменных зон. Если первичным, то укажите "master". Если вторичным — "slave".
- Запустите скрипт.
Перезапустите DNSmanager:
/usr/local/mgr5/sbin/mgrctl -m dnsmgr exit
BASH