DNScale ahora es compatible con DNSControl: DNS como código simplificado
Gestiona tu infraestructura DNS con DNSControl. Define zonas y registros en JavaScript, previsualiza cambios y aplícalos con un solo comando.
¿Alguna vez has deseado que gestionar DNS fuera tan fácil como dnscontrol push? Ahora lo es.
Anunciamos el proveedor oficial de DNScale para DNSControl, la herramienta de gestión DNS de código abierto de StackExchange. Esta integración te permite definir toda tu configuración DNS en un archivo JavaScript, previsualizar cambios antes de aplicarlos y gestionar múltiples dominios desde una única fuente de verdad.
¿Por qué DNSControl?
DNSControl adopta un enfoque diferente al DNS como código. En lugar de HCL o YAML, escribes tu configuración en JavaScript puro. Esto te da construcciones de programación reales — variables, funciones, bucles — manteniendo tus definiciones DNS declarativas y legibles.
Con el proveedor de DNScale, puedes:
- Escribir DNS como JavaScript - Usa variables, funciones y macros para eliminar la repetición
- Previsualizar antes de aplicar - Ve exactamente qué cambiará antes de que se haga efectivo
- Soportar múltiples proveedores - DNSControl funciona con docenas de proveedores DNS, facilitando las migraciones
- Rastrear cambios en Git - Tu
dnsconfig.jses tu documentación DNS - Automatizar con CI/CD - Ejecuta
previewen pull requests,pushal hacer merge
Qué puedes gestionar
El proveedor de DNScale soporta los 14 tipos de registros DNS disponibles en la plataforma: A, AAAA, ALIAS, CAA, CNAME, HTTPS, MX, NS, PTR, SRV, SSHFP, SVCB, TLSA y TXT.
Zonas
Las zonas se crean automáticamente cuando ejecutas dnscontrol push. No se requiere un paso de configuración separado:
D("myapp.com", REG_NONE, DnsProvider(DSP_DNSCALE),
A("@", "203.0.113.10")
);Registros
Define cualquier tipo de registro con una sintaxis clara y legible:
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")
);Inicio rápido
Comenzar requiere solo tres pasos.
1. Configura las credenciales — crea creds.json:
{
"dnscale": {
"TYPE": "DNSCALE",
"api_key": "your-api-key-here"
}
}2. Define tu DNS — crea 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. Previsualiza y aplica:
dnscontrol preview # Ver qué cambiaría
dnscontrol push # Aplicar los cambiosEso es todo. Tu zona está creada, los registros están configurados y todo está definido en un archivo que puedes subir a Git.
Casos de uso reales
Gestión de múltiples dominios
Gestiona docenas de dominios desde un solo archivo usando variables y funciones de 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
);Migración desde otros proveedores
DNSControl soporta docenas de proveedores DNS. Puedes migrar a DNScale de forma incremental cambiando la declaración del proveedor mientras mantienes tus definiciones de registros sin cambios.
Integración CI/CD
Ejecuta dnscontrol preview en pull requests para detectar errores de configuración DNS antes de que lleguen a producción. Haz merge a main para activar dnscontrol push automáticamente.
Cómo funciona
El proveedor de DNScale se comunica con la API REST de DNScale usando tu clave de API. Cuando ejecutas dnscontrol push:
- DNSControl lee tu configuración
dnsconfig.js - El proveedor obtiene los registros actuales de la API de DNScale
- Se calcula un diff entre el estado deseado y el actual
- Solo se aplican los cambios necesarios (creaciones, actualizaciones, eliminaciones)
Este enfoque basado en diff significa que puedes ejecutar push repetidamente de forma segura — si nada cambió en tu configuración, nada cambia en tu DNS.
Comienza hoy
- Guía de aprendizaje: Gestionar DNS con DNSControl
- Documentación de DNSControl: docs.dnscontrol.org
- DNSControl en GitHub: github.com/StackExchange/dnscontrol
Si aún no tienes una cuenta en DNScale, regístrate y obtén tu clave de API desde el panel de control. Tu primera zona es por nuestra cuenta.
Próximos pasos
Esta versión inicial cubre el conjunto completo de funcionalidades de DNScale. Estamos planificando:
- Documentación ampliada y guías de migración
- Más ejemplos de CI/CD para GitLab CI, Bitbucket Pipelines y otros
- Contribuciones de la comunidad upstream al proyecto DNSControl
¿Tienes comentarios? Contacta con nuestro equipo o abre un issue en el repositorio de DNSControl.
El DNS como código no tiene por qué ser complicado. Con DNSControl y DNScale, obtienes un archivo de configuración JavaScript, un flujo de trabajo de previsualización antes de aplicar y soporte para todos los tipos de registro. Tu configuración DNS finalmente recibe el mismo tratamiento que todo lo demás en tu stack: versionada, revisada, automatizada y fiable.
Haz dnscontrol push de tu DNS hoy.