Sluta brottas med DNS-API:er – så här gör DNS Lexicon det enkelt
Sluta kämpa med DNS-API:er – så här förenklar DNS Lexicon allt
Problemet med olika DNS-leverantörer
De flesta som jobbat med DNS-uppdateringar via kod har stött på samma utmaning. Varje leverantör har sin egen API-struktur, autentisering och sätt att svara på förfrågningar. Det som funkar hos en aktör behöver ofta skrivas om helt när du byter till en annan.
Resultatet blir ofta en samling specialskrivna funktioner, halvdokumenterade skript och mycket tid som går åt till felsökning. Många väljer då att skippa automatisering helt eller bygga egna lager som snabbt blir svåra att underhålla.
DNS Lexicon – en gemensam lösning
DNS Lexicon är ett Python-bibliotek som tar hand om just det här. Istället för att lära sig varje leverantörs API kan du använda ett enda, konsekvent gränssnitt som fungerar över flera plattformar.
Med Lexicon kan du:
- Skapa och ta bort DNS-poster hos vilken leverantör som helst
- Automatisera validering för ACME-certifikat, inklusive wildcard-SSL
- Hantera DNS i större skala utan att läsa in dig på tiotals olika API-dokumentationer
- Byta leverantör utan att behöva skriva om hela din automationskod
Så fungerar DNS Lexicon
Grundidén är enkel. Du anger vilken provider du använder och autentiserar en gång. Därefter gör du samma typ av operationer oavsett var DNS-posterna ligger.
from lexicon.client import Client
client = Client({
'provider_name': 'cloudflare',
'auth_token': 'your_auth_token'
})
client.execute(Action.Create, 'TXT', {
'name': '_acme-challenge.example.com',
'content': 'validation-string-here'
})
client.execute(Action.Delete, 'TXT', {
'name': '_acme-challenge.example.com'
})
Du slipper hantera olika REST-anrop, OAuth-flöden eller specifika format för API-nycklar. Allt sker på ett förutsägbart sätt.
Vanliga användningsområden
Automatiska Let's Encrypt-certifikat
Lexicon fungerar bra tillsammans med Certbot och Lego för DNS-01-validering. Det gör det enkelt att automatisera förnyelse av wildcard-certifikat.
Hantering av flera DNS-leverantörer samtidigt
Har du DNS på Route 53 men backup-poster hos Cloudflare? Med Lexicon kan du styra båda från samma kodbas utan att behöva växla mellan olika verktyg.
Infrastruktur som kod
När DNS-uppdateringar ska ingå i Terraform- eller Ansible-flöden behöver de vara stabila och repeterbara. Lexicon ger dig ett gemensamt lager som fungerar oavsett leverantör.
Automatiserad katastrofåterställning
Om en leverantör ligger nere kan du snabbt flytta DNS-poster till en backup. Med Lexicon går det att skriva skript som gör det utan manuell inblandning.
Vilka leverantörer stöds?
Lexicon har stöd för över 50 DNS-leverantörer. Det inkluderar både stora aktörer som AWS Route 53 och Azure DNS, samt mindre som Gandi och Transip. Exempel på populära:
- Cloudflare
- Amazon Route 53
- DigitalOcean
- Linode
- GoDaddy
- Namecheap
- OVH
- Hetzner
Om din provider inte finns med kan du oftast bidra med stöd själv, tack till den öppna källkoden.
Hur kommer du igång?
Installationen är enkel:
pip install dns-lexicon
Efter att du har satt upp autentisering för din leverantör kan you skapa DNS-poster via kod redan efter några minuter. Dokumentationen på GitHub är bra och det finns en aktiv community som kan hjälpa dig om du stöter på problem.
Sammanfattning
DNS-uppdateringar via API behöver inte vara krångligt. DNS Lexicon tar bort mycket av den komplexitet som annars uppstår när du använder flera olika leverantörer. Det är ett verktyg som många utvecklare och DevOps-team kan ha nytta av,特别 när de bygger automatisering som ska hålla över tid.
Sluta skriva anpassade wrapper-funktioner för varje provider. Testa Lexicon istället och fokusera på det som faktiskt ger värde.