Инструкция по ручному добавлению доменов в DNSmanager (если домены уже есть в файле конфигурации named)

Материал из ISPWiki
Перейти к: навигация, поиск

В данной статье описано как добавить в DNSmanager домены, которые уже есть в named.

1. Так как домены в DNSmanager привязаны к пользователю и его пространству имен, то первым шагом нужно создать в панели пользователя.

2. Панель предполагает, что все зоны находятся во view (view = пространство имен пользователя). Поэтому нужно сделать, чтобы зоны находились во view.

Пример:

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.mary/company.my";
       };
};

3. DNSmanager хранит всю информацию в базе данных sqlite. Нужно добавить домен в базу данных.

Файл базы данных - /path/to/manager/etc/dnsmgr.db (по умолчанию DNSmanager устанавливается в директорию /usr/local/mgr5/)

Например, имя созданного пользователя - named, пространство имен - hoster.me.

Получаем из базы id пользователя.

sqlite> select * from user where name='named';
15|named||$1$uRNrHK8j$wMBkoPr8FvtbC74DoiW3M.|16|on|off|13||0||100|tech@hoster.me|ns1.hoster.me. ns2.hoster.me.|mail mail|ftp www mail|127.0.0.1

15 - id пользователя named.

Получаем из базы id пространства имен.

sqlite> select * from namespace where name='hoster.me';
13|hoster.me|0.0.0.6|

13 - id пространства имен hoster.me.

Добавляем домен в таблицу domain с привязкой к пользователю и пространству имен.

sqlite> insert into domain ([id],[name],[namespace_id],[user],[dtype]) values ('56','company.my','13','15','master');

После изменения базы нужно перезапустить DNSmanager.

/usr/local/mgr5/sbin/mgrctl -m dnsmgr exit

Автоматизация

Возникает вопрос, что делать, если доменов не один и не два? Ниже приведен скрипт, с помощью которого можно задачу автоматизировать.

Предполагается, что в файле /root/domain.txt список доменов. Переменной count нужно выставить значение выше, чем последний id в таблице domain.

#!/bin/bash
count=100
for i in `cat /root/domain.txt`; do
       echo "insert into domain ([id],[name],[namespace_id],[user],[dtype]) values ('$count','$i','13','15','master');" | sqlite3 /usr/local/mgr5/etc/dnsmgr.db 
       count=$((count+1))
done