DNSControl - это продуманная платформа для плавного управления конфигурацией DNS на любом количестве DNS-хостов, как в облаке, так и в Вашей собственной инфраструктуре. Он управляет всеми доменами сети проекта Stack Overflow и может сделать то же самое для вас!
А теперь немного подробнее. С помощью конфигурационных файлов json
и javascript
Вы можете описать DNS записи для Ваших доменов. Затем запустить команду dnscontrol push
и изменения будут отправлены указанному DNS провайдеру. Предварительно, конечно, придется позаботитсья о том, чтобы получить API ключи для обращения этому провайдеру.
Вот как выглядит конфигурационный файл dnsconfig.js
:
1 2 3 4 5 6 7 8 9 10 11 12 |
// 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 провайдера, который не поддерживается официально.