Infrastructure as Code: DNS-Einträge mit Terraform setzen
Wir zeigen, wie Sie bestehende DNS-Einträge in Cloudflare für Terraform lesbar machen. Danach können Sie sich den Login in das Cloudflare-Dashboard sparen.
Nameserver sind die Telefonbücher des Internets. Dank der Namensauflösung tippt man einfach example.com in die Adressleiste des Browsers ein und muss sich nicht die komplizierte IP-Adresse 93.184.216.34 merken. Dahinter steckt ein sogenannter A-Record (Address-Record), der im Domain Name System (DNS) gespeichert ist und die Domain einer IPv4-Adresse zuordnet. Komplexe Webauftritte bestehen heutzutage oft aus einem ganzen Strauß an verwobenen Microservices, vom Identitätsmanagement login.example.com bis zum Webshop unter shop.example.com, die eigene A-Records benötigen.
Wenn Administratoren dafür DNS-Einträge setzen wollen, führt sie der Weg oft in die Weboberflächen der jeweiligen Cloud- oder DNS-Provider. Spätestens wenn man mehrere hundert Einträge verwaltet oder DNS im Team beackert, wird es dort aber unübersichtlich und die Transparenz bleibt auf der Strecke.
Warum also DNS nicht wie Programmcode behandeln und mit einer Versionskontrolle wie Git verwalten? Wir zeigen, wie Sie mit dem Automatisierungswerkzeug Terraform und Infrastructure as Code (IaC) den Grundstein dafür legen und Ihrem DNS-Provider Einträge über ein API einflößen. In dieser Anleitung dient Cloudflare als Beispielprovider, weil das API gut dokumentiert ist und der Anbieter es Nutzern besonders leicht macht, bestehende DNS-Ressourcen für Terraform zu importieren. Das ist wichtig, weil Terraform stets das letzte Wort haben will, DNS-Einträge also autoritativ verwaltet. Einträge, von denen es nichts weiß, überschreibt es im Zweifel. Vielleicht verwalten Sie Ihre Domains ja ohnehin schon mit Cloudflare. Terraform arbeitet Cloud-agnostisch und bietet in seiner Registry Plug-ins für die meisten populären Provider. Wenn Sie Ihre Domain umziehen wollen, haben wir eine Anleitung verlinkt, die erklärt, wie Sie den Nameserver wechseln.
Das war die Leseprobe unseres heise-Plus-Artikels "Infrastructure as Code: DNS-Einträge mit Terraform setzen". Mit einem heise-Plus-Abo können sie den ganzen Artikel lesen und anhören.