DNScale unterstützt jetzt DNSControl: DNS as Code leicht gemacht
Verwalten Sie Ihre DNS-Infrastruktur mit DNSControl. Definieren Sie Zonen und Records in JavaScript, prüfen Sie Änderungen vorab und wenden Sie sie mit einem einzigen Befehl an.
Haben Sie sich jemals gewünscht, DNS-Verwaltung wäre so einfach wie dnscontrol push? Jetzt ist sie es.
Wir freuen uns, den offiziellen DNScale-Provider für DNSControl anzukündigen – das Open-Source-DNS-Management-Tool von StackExchange. Diese Integration ermöglicht es Ihnen, Ihre gesamte DNS-Konfiguration in einer JavaScript-Datei zu definieren, Änderungen vor der Anwendung zu prüfen und mehrere Domains aus einer einzigen Datenquelle zu verwalten.
Warum DNSControl?
DNSControl verfolgt einen anderen Ansatz bei DNS-as-Code. Statt HCL oder YAML schreiben Sie Ihre Konfiguration in reinem JavaScript. Das gibt Ihnen echte Programmierkonstrukte – Variablen, Funktionen, Schleifen – während Ihre DNS-Definitionen deklarativ und lesbar bleiben.
Mit dem DNScale-Provider können Sie:
- DNS als JavaScript schreiben – Verwenden Sie Variablen, Funktionen und Makros, um Wiederholungen zu vermeiden
- Vor der Anwendung prüfen – Sehen Sie genau, was sich ändern wird, bevor es live geht
- Mehrere Anbieter unterstützen – DNSControl arbeitet mit Dutzenden von DNS-Anbietern, was Migrationen unkompliziert macht
- Änderungen in Git verfolgen – Ihre
dnsconfig.jsist Ihre DNS-Dokumentation - Mit CI/CD automatisieren – Führen Sie
previewbei Pull Requests aus,pushbeim Merge
Was Sie verwalten können
Der DNScale-Provider unterstützt alle 14 DNS-Record-Typen, die auf der Plattform verfügbar sind: A, AAAA, ALIAS, CAA, CNAME, HTTPS, MX, NS, PTR, SRV, SSHFP, SVCB, TLSA und TXT.
Zonen
Zonen werden automatisch erstellt, wenn Sie dnscontrol push ausführen. Kein separater Einrichtungsschritt erforderlich:
D("myapp.com", REG_NONE, DnsProvider(DSP_DNSCALE),
A("@", "203.0.113.10")
);Records
Definieren Sie jeden Record-Typ mit einer übersichtlichen, lesbaren Syntax:
D("myapp.com", REG_NONE, DnsProvider(DSP_DNSCALE),
A("api", "203.0.113.10", TTL(300)),
AAAA("api", "2001:db8::10", TTL(300)),
CNAME("www", "myapp.com."),
MX("@", 10, "mail.myapp.com."),
TXT("@", "v=spf1 include:_spf.google.com ~all"),
CAA("@", "issue", "letsencrypt.org")
);Schnellstart
Der Einstieg erfolgt in drei Schritten.
1. Zugangsdaten konfigurieren — erstellen Sie creds.json:
{
"dnscale": {
"TYPE": "DNSCALE",
"api_key": "your-api-key-here"
}
}2. Ihr DNS definieren — erstellen Sie dnsconfig.js:
var REG_NONE = NewRegistrar("none");
var DSP_DNSCALE = NewDnsProvider("dnscale");
D("example.com", REG_NONE, DnsProvider(DSP_DNSCALE),
A("@", "192.0.2.1"),
A("www", "192.0.2.1"),
MX("@", 10, "mail.example.com."),
TXT("@", "v=spf1 include:_spf.google.com ~all")
);3. Prüfen und anwenden:
dnscontrol preview # See what would change
dnscontrol push # Apply the changesDas war's. Ihre Zone ist erstellt, die Records sind konfiguriert und alles ist in einer Datei definiert, die Sie in Git committen können.
Praxisbeispiele
Multi-Domain-Verwaltung
Verwalten Sie Dutzende von Domains aus einer Datei mit JavaScript-Variablen und -Funktionen:
var MAIL_SERVERS = [
MX("@", 10, "mx1.mailprovider.com."),
MX("@", 20, "mx2.mailprovider.com.")
];
D("company.com", REG_NONE, DnsProvider(DSP_DNSCALE),
A("@", "192.0.2.1"),
MAIL_SERVERS
);
D("company.org", REG_NONE, DnsProvider(DSP_DNSCALE),
A("@", "192.0.2.1"),
MAIL_SERVERS
);Migration von anderen Anbietern
DNSControl unterstützt Dutzende von DNS-Anbietern. Sie können schrittweise zu DNScale migrieren, indem Sie die Provider-Deklaration ändern und Ihre Record-Definitionen unverändert lassen.
CI/CD-Integration
Führen Sie dnscontrol preview bei Pull Requests aus, um DNS-Fehlkonfigurationen zu erkennen, bevor sie in die Produktion gelangen. Mergen Sie in main, um dnscontrol push automatisch auszulösen.
Funktionsweise
Der DNScale-Provider kommuniziert über Ihren API-Schlüssel mit der DNScale-REST-API. Wenn Sie dnscontrol push ausführen:
- DNSControl liest Ihre
dnsconfig.js-Konfiguration - Der Provider ruft aktuelle Records von der DNScale-API ab
- Ein Diff zwischen Soll- und Ist-Zustand wird berechnet
- Nur die notwendigen Änderungen (Erstellen, Aktualisieren, Löschen) werden angewendet
Dieser Diff-basierte Ansatz bedeutet, dass Sie push beliebig oft ausführen können – wenn sich nichts in Ihrer Konfiguration geändert hat, ändert sich auch nichts an Ihrem DNS.
Jetzt starten
- Lernleitfaden: DNS mit DNSControl verwalten
- DNSControl-Dokumentation: docs.dnscontrol.org
- DNSControl GitHub: github.com/StackExchange/dnscontrol
Sie haben noch kein DNScale-Konto? Registrieren Sie sich und holen Sie sich Ihren API-Schlüssel aus dem Dashboard. Ihre erste Zone geht auf uns.
Ausblick
Dieses erste Release deckt den vollständigen DNScale-Funktionsumfang ab. Wir planen:
- Erweiterte Dokumentation und Migrationsleitfäden
- Weitere CI/CD-Beispiele für GitLab CI, Bitbucket Pipelines und andere
- Community-Beiträge upstream zum DNSControl-Projekt
Haben Sie Feedback? Kontaktieren Sie unser Team oder eröffnen Sie ein Issue im DNSControl-Repository.
DNS-as-Code muss nicht kompliziert sein. Mit DNSControl und DNScale erhalten Sie eine JavaScript-Konfigurationsdatei, einen Preview-before-Push-Workflow und Unterstützung für jeden Record-Typ. Ihre DNS-Konfiguration erhält endlich die gleiche Behandlung wie alles andere in Ihrem Stack: versioniert, überprüft, automatisiert und zuverlässig.
dnscontrol push Sie Ihr DNS noch heute.