
dnscontrol v5.0.0-rc2
Infrastruttura come codice per DNS!
DNSControl
DNSControl è Infrastructure as Code per il DNS. Include un linguaggio di configurazione completo (compatibile con JavaScript), oltre a "plugin" che si interfacciano con le API dei provider DNS come AWS Route 53, Cloudflare e Gandi. Può inviare gli stessi record DNS a più provider. Funziona ovunque giri Go (Linux, macOS, Windows). Il modello dei provider è estendibile, quindi è possibile aggiungerne altri.
Un esempio
dnsconfig.js:
// define our registrar and providers
var REG_NAMECOM = NewRegistrar("name.com");
var r53 = NewDnsProvider("r53")
D("example.com", REG_NAMECOM, DnsProvider(r53),
A("@", "1.2.3.4"),
CNAME("www","@"),
MX("@",5,"mail.myserver.com."),
A("test", "5.6.7.8")
)
Eseguendo dnscontrol preview, lo strumento comunica con i provider (qui name.com come registrar e route 53 come host DNS) e determina quali modifiche devono essere apportate.
Eseguendo dnscontrol push, lo strumento applica queste modifiche al provider e i miei record DNS verranno aggiornati correttamente.
Il modo più semplice per eseguire DNSControl è usare il container Docker:
docker run --rm -it -v "$(pwd):/dns" ghcr.io/dnscontrol/dnscontrol preview
Vedi la pagina Per iniziare sul sito di documentazione per iniziare!
Provider supportati
DNSControl supporta 65 provider DNS e registrar:
¹supporta anche funzioni da registrar ²solo registrar
Stack Overflow usa questo sistema per gestire centinaia di domini e sottodomini su più registrar e provider DNS.
Puoi considerarlo come un compilatore DNS. I file di configurazione sono scritti in un DSL che assomiglia molto a JavaScript. Vengono compilati in una rappresentazione intermedia (IR). I back-end del compilatore usano la IR per aggiornare le tue zone DNS su servizi come Route53, Cloudflare e Gandi, o su sistemi come BIND.
Vantaggi
- Meno soggetto a errori rispetto alla modifica di un file di zona BIND.
- Più riproducibile che cliccare pulsanti su un portale web.
- Passa facilmente da un provider DNS all'altro: il linguaggio di DNSControl è indipendente dal fornitore. Se lo usi per mantenere i record delle tue zone DNS, puoi cambiare provider DNS facilmente. Infatti, DNSControl caricherà i tuoi record DNS su più provider, il che significa che puoi testarne uno mentre passi a un altro. Abbiamo cambiato provider 3 volte in tre anni e non abbiamo mai perso un record DNS.
- Applica i principi CI/CD al DNS! StackOverflow mantiene le sue configurazioni DNSControl in Git e usa il nostro sistema di CI per distribuire le modifiche. Tenere le informazioni DNS in un VCS significa avere una cronologia completa. Usare la CI ci consente di includere unit-test e system-test. Ricordi quando hai dimenticato di mettere un "." alla fine di un record MX? Non abbiamo più avuto quel problema da quando abbiamo incluso un test per assicurarci che Tom non ripeta quell'errore... ancora.
- Adotta aggiornamenti basati su PR (GitOps). Consenti agli sviluppatori di inviare aggiornamenti come PR, che puoi esaminare prima di approvare.
- Le variabili fanno risparmiare tempo! Assegna un indirizzo IP a una costante e usa il nome della variabile in tutto il file. Devi cambiare l'indirizzo IP globalmente? Basta cambiare la variabile e "ricompilare".
- Macro! Definisci i tuoi record SPF, MX o altri dati ripetuti una volta sola e riutilizzali per tutti i domini.
- Controlla Cloudflare da un'unica fonte di verità. Attiva/disattiva il proxy di Cloudflare (il pulsante "nuvola arancione") direttamente dai tuoi file DNSControl.
- Mantieni sincronizzati domini simili con trasformazioni e altre funzionalità. Se un dominio deve essere una versione filtrata di un altro, è facile da configurare.
- È estendibile! Tutti i provider DNS sono scritti come plugin. Scrivere nuovi plugin è molto semplice.
Installazione
DNSControl può essere installato tramite pacchetti per macOS, Linux e Windows, o dal codice sorgente. Consulta le istruzioni ufficiali.
Tramite GitHub Actions (GHA)
Vedi dnscontrol-action o gacts/install-dnscontrol.
Avvisi di deprecazione (aggiornato al 2025-11-21)
- REV() passerà da RFC2317 a RFC4183 nella v5.0. Questa è una modifica di rottura. Vengono emessi avvisi se la tua configurazione è interessata. Nessuna data è stata annunciata per la v5.0. Vedi https://docs.dnscontrol.org/language-reference/top-level-functions/revcompat
- NAMEDOTCOM, OPENSRS e SOFTLAYER cercano manutentori! Questi provider non hanno un manutentore. I manutentori rispondono alle PR e correggono i bug in modo tempestivo e cercano di stare al passo con i cambiamenti di protocollo. Ti piacerebbe essere un eroe e adottarli? Contatta tal at what exit dot org.
Contribuire
Vuoi contribuire? Che si tratti di correggere un bug, aggiungere un nuovo provider DNS o migliorare la documentazione, i contributi sono benvenuti. Vedi CONTRIBUTING.md per sapere come iniziare.
Ulteriori informazioni sul nostro sito web
Il sito web: https://docs.dnscontrol.org/
La guida per iniziare: https://docs.dnscontrol.org/getting-started/getting-started