CLI для управления инфраструктурой как кодом: планирует и применяет декларативные конфигурации для создания, изменения и версионирования облачных ресурсов и сервисов.
DNSControl/dnscontrol
Infrastructure as Code для DNS: описывайте DNS-записи в конфигурации на JavaScript и отправляйте их множеству провайдеров.
- Звёзды
- 3,979
- Форки
- 550
- Открытые issues
- 32
- Последний коммит
- вчера
Что это?
DNSControl управляет DNS-записями как кодом. Опишите зоны и записи в файле конфигурации, совместимом с JavaScript, — DNSControl сравнит это желаемое состояние с текущими данными у каждого провайдера, а затем покажет и применит различия через API провайдера.
В комплект входят плагины примерно для 77 DNS-провайдеров и регистраторов, в том числе Amazon Route 53, Cloudflare, Gandi, Google Cloud DNS и самостоятельно размещаемых решений, таких как ISC BIND и PowerDNS. Одна конфигурация позволяет одновременно отправлять одинаковые записи нескольким провайдерам, упрощая переход к другому провайдеру и тестирование нового. Инструмент работает в Linux, macOS и Windows, а модель провайдеров позволяет добавлять новых в виде плагинов.
Проект написан на Go. Обычно его запускают из командной строки, в Docker-контейнере или через GitHub Action — так изменения DNS можно проверять в pull request и выкатывать с помощью CI.
Ключевые возможности
- 01Описывает DNS-зоны и записи в файле конфигурации, совместимом с JavaScript.
- 02Показывает изменения относительно текущих данных у провайдеров перед применением командой push.
- 03Синхронизирует одинаковые записи у нескольких DNS-провайдеров на основе одной конфигурации.
- 04Поддерживает примерно 77 DNS-провайдеров и регистраторов с помощью плагинов.
- 05Предоставляет переменные и макросы для повторного использования IP-адресов и настроек SPF и MX в разных доменах.
- 06Работает в Linux, macOS и Windows; доступен в виде Docker-образа.
Сценарии использования
- Управление DNS-записями множества доменов через Git с проверкой изменений в pull request.
- Перенос зоны от одного DNS-провайдера к другому с синхронизацией обоих провайдеров на время тестирования.
- Автоматизация изменений DNS в CI/CD-пайплайнах с помощью официального GitHub Action.
- Хранение DNS-записей для собственных серверов BIND или PowerDNS под контролем версий.
Быстрый старт
- 1
Установите DNSControl из пакетов или исходного кода, следуя официальным инструкциям
- 2
Запустите интерактивный мастер настройки, чтобы создать creds.json и dnsconfig.js
dnscontrol init - 3
Или запустите программу без установки с помощью Docker-контейнера
docker run --rm -it -v "$(pwd):/dns" ghcr.io/dnscontrol/dnscontrol preview
Что важно знать
- Начиная с версии 5.0, REV() переключится с RFC2317 на RFC4183. Это несовместимое изменение.
- У провайдеров NAMEDOTCOM, OPENSRS и SOFTLAYER в настоящее время нет сопровождающих.
Темы
Частые вопросы
- Что такое dnscontrol?
- Infrastructure as Code для DNS: описывайте DNS-записи в конфигурации на JavaScript и отправляйте их множеству провайдеров. DNSControl управляет DNS-записями как кодом. Опишите зоны и записи в файле конфигурации, совместимом с JavaScript, — DNSControl сравнит это желаемое состояние с текущими данными у каждого провайдера, а затем покажет и применит различия через API провайдера.
- dnscontrol можно использовать бесплатно? Какая у него лицензия?
- dnscontrol распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- dnscontrol всё ещё поддерживается?
- Активно поддерживается. Последний коммит в dnscontrol — 21 окт. 2026 г..
- Для чего можно использовать dnscontrol?
- Управление DNS-записями множества доменов через Git с проверкой изменений в pull request. Перенос зоны от одного DNS-провайдера к другому с синхронизацией обоих провайдеров на время тестирования. Автоматизация изменений DNS в CI/CD-пайплайнах с помощью официального GitHub Action. Хранение DNS-записей для собственных серверов BIND или PowerDNS под контролем версий.
- Как установить dnscontrol?
- Установите DNSControl из пакетов или исходного кода, следуя официальным инструкциям Запустите интерактивный мастер настройки, чтобы создать creds.json и dnsconfig.js: dnscontrol init Или запустите программу без установки с помощью Docker-контейнера: docker run --rm -it -v "$(pwd):/dns" ghcr.io/dnscontrol/dnscontrol preview
- Где скачать dnscontrol?
- Исходный код и инструкции по установке — на GitHub: https://github.com/DNSControl/dnscontrol
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Meshery — open source-платформа для проектирования, развертывания и управления Kubernetes-инфраструктурой и приложениями в нескольких кластерах и облаках.
Панель управления для собственного сервера: развёртывание веб-приложений, управление базами данных, Docker-контейнерами, DNS, резервными копиями и безопасностью на VPS или выделенном сервере.
Декларативный инструмент непрерывной доставки по модели GitOps, который синхронизирует приложения в Kubernetes с состоянием, заданным в Git-репозиториях.
Git-native платформа для управления feature flags: храните флаги в своих Git-репозиториях и развёртывайте их вместе с кодом.
OpenTofu — открытый инструмент Infrastructure as Code для декларативного создания, изменения и версионирования облачной инфраструктуры.