DNSControl – это продуманная платформа для плавного управления конфигурацией DNS на любом количестве DNS-хостов, как в облаке, так и в Вашей собственной инфраструктуре. Он управляет всеми доменами сети проекта Stack Overflow и может сделать то же самое для вас!
А теперь немного подробнее. С помощью конфигурационных файлов json
и javascript
Вы можете описать DNS записи для Ваших доменов. Затем запустить команду dnscontrol push
и изменения будут отправлены указанному DNS провайдеру. Предварительно, конечно, придется позаботиться о том, чтобы получить API ключи для обращения этому провайдеру.
Вот как выглядит конфигурационный файл dnsconfig.js
:
// Providers:
var REG_NONE = NewRegistrar('none', 'NONE'); // No registrar.
var DNS_BIND = NewDnsProvider('bind', 'BIND'); // ISC BIND.
// Domains:
var domain = 'example.com';
D(domain, REG_NONE, DnsProvider(DNS_BIND),
A('@', '1.2.3.4'),
A('api', '1.2.3.5'),
CNAME('mobile', domain)
);
Здесь A запись
для домена верхнего уровня example.com мы направили на IP 1.2.3.4. A запись
для api.example.com – на 1.2.3.5. И создали CNAME запись
для mobile.example.com, где указали наш домен верхнего уровня. Все эти изменения при запуске будут отправлены DNS провайдеру BIND.
Чтобы не отправить ошибочные изменения в настрйоки зон DNS есть команда dnscontrol preview
. Ее вывод покажет какие изменения произойдут при запуске dnscontrol push
.
Но DNSControl умеет не только это. С помощью него можно получить Let's Encrypt
SSL сертификаты. В том числе wildcard. Для этого имеется команда dnscontrol get-certs
. Конечно она потребует для работы некоторый json
конфигурационный файл. Но его очень просто сделать.
DNSControl работает с определенным DNS провайдерами, список которых есть в документации. Также можно написать свой собственный драйвер на языке GO для DNS провайдера, который не поддерживается официально.