DNScale prend désormais en charge DNSControl : le DNS as Code simplifié
Gérez votre infrastructure DNS avec DNSControl. Définissez vos zones et enregistrements en JavaScript, prévisualisez les modifications et appliquez-les en une seule commande.
Avez-vous déjà rêvé que gérer le DNS soit aussi simple que dnscontrol push ? C'est désormais le cas.
Nous annonçons le provider DNScale officiel pour DNSControl, l'outil open source de gestion DNS de StackExchange. Cette intégration vous permet de définir l'ensemble de votre configuration DNS dans un fichier JavaScript, de prévisualiser les modifications avant de les appliquer et de gérer plusieurs domaines depuis une source de vérité unique.
Pourquoi DNSControl ?
DNSControl adopte une approche différente du DNS-as-code. Au lieu de HCL ou YAML, vous écrivez votre configuration en JavaScript. Cela vous donne accès à de véritables constructions de programmation — variables, fonctions, boucles — tout en gardant vos définitions DNS déclaratives et lisibles.
Avec le provider DNScale, vous pouvez :
- Écrire le DNS en JavaScript - Utilisez des variables, des fonctions et des macros pour éliminer la répétition
- Prévisualiser avant d'appliquer - Voyez exactement ce qui va changer avant la mise en production
- Prendre en charge plusieurs fournisseurs - DNSControl fonctionne avec des dizaines de fournisseurs DNS, facilitant les migrations
- Suivre les modifications dans Git - Votre
dnsconfig.jsest votre documentation DNS - Automatiser avec le CI/CD - Exécutez
previewsur les pull requests,pushà la fusion
Ce que vous pouvez gérer
Le provider DNScale prend en charge les 14 types d'enregistrements DNS disponibles sur la plateforme : A, AAAA, ALIAS, CAA, CNAME, HTTPS, MX, NS, PTR, SRV, SSHFP, SVCB, TLSA et TXT.
Zones
Les zones sont créées automatiquement lorsque vous exécutez dnscontrol push. Aucune étape de configuration préalable n'est nécessaire :
D("myapp.com", REG_NONE, DnsProvider(DSP_DNSCALE),
A("@", "203.0.113.10")
);Enregistrements
Définissez n'importe quel type d'enregistrement avec une syntaxe claire et lisible :
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")
);Démarrage rapide
La mise en route se fait en trois étapes.
1. Configurez les identifiants — créez creds.json :
{
"dnscale": {
"TYPE": "DNSCALE",
"api_key": "your-api-key-here"
}
}2. Définissez votre DNS — créez 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évisualisez et appliquez :
dnscontrol preview # Voir ce qui changerait
dnscontrol push # Appliquer les modificationsC'est tout. Votre zone est créée, les enregistrements sont configurés et tout est défini dans un fichier que vous pouvez committer dans Git.
Cas d'utilisation concrets
Gestion multi-domaines
Gérez des dizaines de domaines depuis un seul fichier en utilisant des variables et fonctions JavaScript :
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 depuis d'autres fournisseurs
DNSControl prend en charge des dizaines de fournisseurs DNS. Vous pouvez migrer vers DNScale progressivement en changeant la déclaration du fournisseur tout en conservant vos définitions d'enregistrements inchangées.
Intégration CI/CD
Exécutez dnscontrol preview sur les pull requests pour détecter les erreurs de configuration DNS avant qu'elles n'atteignent la production. Fusionnez vers main pour déclencher automatiquement dnscontrol push.
Comment ça fonctionne
Le provider DNScale communique avec l'API REST DNScale en utilisant votre clé API. Lorsque vous exécutez dnscontrol push :
- DNSControl lit votre configuration
dnsconfig.js - Le provider récupère les enregistrements actuels depuis l'API DNScale
- Un diff est calculé entre l'état souhaité et l'état actuel
- Seules les modifications nécessaires (créations, mises à jour, suppressions) sont appliquées
Cette approche basée sur les différences signifie que vous pouvez exécuter push de manière répétée en toute sécurité — si rien n'a changé dans votre configuration, rien ne change dans votre DNS.
Commencez dès aujourd'hui
- Guide d'apprentissage : Gérer le DNS avec DNSControl
- Documentation DNSControl : docs.dnscontrol.org
- GitHub DNSControl : github.com/StackExchange/dnscontrol
Si vous n'avez pas encore de compte DNScale, inscrivez-vous et récupérez votre clé API depuis le tableau de bord. Votre première zone est offerte.
Et ensuite
Cette version initiale couvre l'ensemble des fonctionnalités DNScale. Nous prévoyons :
- Une documentation élargie et des guides de migration
- Plus d'exemples CI/CD pour GitLab CI, Bitbucket Pipelines et d'autres
- Des contributions communautaires en amont du projet DNSControl
Des retours ? Contactez notre équipe ou ouvrez une issue sur le dépôt DNSControl.
Le DNS-as-code n'a pas besoin d'être compliqué. Avec DNSControl et DNScale, vous obtenez un fichier de configuration JavaScript, un workflow de prévisualisation avant application et la prise en charge de tous les types d'enregistrements. Votre configuration DNS bénéficie enfin du même traitement que tout le reste de votre stack : versionnée, relue, automatisée et fiable.
Faites dnscontrol push sur votre DNS dès aujourd'hui.