
dnscontrol v5.0.0-rc9
Инфраструктура как код для DNS!
DNSControl
DNSControl — это Infrastructure as Code для DNS. Он включает полнофункциональный язык конфигурации (совместимый с JavaScript), а также «плагины», которые взаимодействуют с API DNS-провайдеров, таких как AWS Route 53, Cloudflare и Gandi. Он может отправлять одни и те же DNS-записи нескольким провайдерам. Он работает везде, где работает Go (Linux, macOS, Windows). Модель провайдеров расширяема, поэтому можно добавлять новых провайдеров.
Пример
dnsconfig.js:
// define our registrar and providers
var REG_NAMECOM = NewRegistrar("ndc_main");
var DSP_ROUTE53 = NewDnsProvider("r53_main");
D("example.com", REG_NAMECOM, DnsProvider(DSP_ROUTE53),
A("@", "1.2.3.4"),
CNAME("www","@"),
MX("@",5,"mail.myserver.com."),
A("test", "5.6.7.8")
)
Запуск dnscontrol preview обратится к провайдерам (здесь name.com как регистратор и route 53 как DNS-хост) и определит, какие изменения необходимо внести.
Запуск dnscontrol push внесёт эти изменения через провайдера, и мои DNS-записи будут корректно обновлены.
Самый простой способ запустить DNSControl — использовать Docker-контейнер:
docker run --rm -it -v "$(pwd):/dns" ghcr.io/dnscontrol/dnscontrol preview
Начало работы
Самый быстрый способ начать — dnscontrol init. Интерактивный мастер запросит вашего DNS-провайдера и регистратора, проверит ваши учётные данные и создаст рабочие creds.json и dnsconfig.js, включая записи, которые уже существуют в ваших зонах.
Полное руководство см. на странице Getting Started на сайте документации.
Хотите полный контроль «GitOps» над вашими DNS-данными? Клонируйте стартовый репозиторий dns-config, чтобы начать!
Поддерживаемые провайдеры
DNSControl поддерживает 68 DNS-провайдеров и регистраторов:
¹также поддерживает функции регистратора ²только регистратор