Terraform-Provider
Verwalten Sie Ihr DNS als Code
Unser Terraform-Provider, zinn-digital/zinn, verwaltet DNS-Einträge für die Domains in Ihrer Organisation und liest Ihre Websites, Domains, Tarife und Hosting-Regionen als Datenquellen aus. Er ist in der Terraform Registry veröffentlicht und basiert auf derselben öffentlichen API wie alles andere auch.
Installieren
Deklarieren Sie den Provider und führen Sie terraform init aus. Releases sind signiert, und Terraform überprüft die Signatur beim Herunterladen des Providers.
terraform {
required_providers {
zinn = {
source = "zinn-digital/zinn"
}
}
}
# api_key falls back to ZINN_API_KEY.
provider "zinn" {}Schnellstart
Suchen Sie eine Domain nach Namen, leiten Sie www darauf weiter und listen Sie anschließend die Hosting-Regionen auf.
data "zinn_regions" "all" {}
data "zinn_domains" "all" {}
resource "zinn_dns_record" "www" {
domain_id = one([for d in data.zinn_domains.all.domains : d.id if d.fqdn == "example.com"])
name = "www"
type = "CNAME"
value = "example.com."
ttl = 3600
}
output "regions" { value = [for r in data.zinn_regions.all.regions : r.slug] }Authentifizierung
Der Provider liest einen organisationsbezogenen API-Schlüssel aus dem Argument api_key oder aus der Umgebungsvariablen ZINN_API_KEY. Die Datenquellen regions und plans benötigen keinen Schlüssel. Weisen Sie dem Schlüssel nur die Berechtigungen zu, die Ihre Konfiguration benötigt, beispielsweise das Anzeigen von Websites und das Verwalten von DNS.
Was es heute verwaltet
Ressource: zinn_dns_record
Erstellen, aktualisieren, löschen und importieren Sie DNS-Einträge auf Ihren Domains: A, AAAA, CNAME, MX, TXT, SRV und die weiteren Typen, die Ihre Zone unterstützt.
Datenquellen
zinn_sites und zinn_domains lesen Ihre Organisation. zinn_regions und zinn_plans lesen den öffentlichen Katalog und benötigen keinen Schlüssel.
Aus der Spezifikation generiert
Die Anforderungs- und Antwortmodelle des Providers werden aus unserer OpenAPI-Spezifikation generiert, und neue Versionen werden automatisch in der Terraform Registry veröffentlicht.
Inventar lesen
Datenquellen benötigen keinerlei Ressourcen, sodass Sie damit beginnen können, das zu lesen, was Sie bereits haben.
# A read-only inventory of your organisation and the catalogue.
data "zinn_sites" "all" {}
data "zinn_plans" "agency" { product_line = "agency" }
output "site_count" { value = length(data.zinn_sites.all.sites) }
output "agency_plans" { value = [for p in data.zinn_plans.agency.plans : p.code] }Fragen
Haben Sie einen Terraform-Provider?
Ja. Verwenden Sie source = "zinn-digital/zinn" aus der Terraform Registry. Derzeit verwaltet es DNS-Einträge und liest Websites, Domains, Tarife und Hosting-Regionen aus.
Kann Terraform Websites oder Postfächer erstellen?
Noch nicht. Websites, Postfächer und Tarife werden im Dashboard, über die API, die SDKs oder die Zinnector® CLI verwaltet. Der Anbieter verwaltet die DNS-Einträge und liest den Rest.
Wie übernehme ich einen bestehenden DNS-Eintrag in Terraform?
Führen Sie terraform import mit der durch einen Schrägstrich getrennten Domain-ID und Datensatz-ID aus, zum Beispiel terraform import zinn_dns_record.www <domain_id>/<record_id>.
Jeden Endpunkt erkunden
Alles, was der Anbieter noch nicht verwaltet, ist über die API verfügbar, die in der API-Referenz Endpunkt für Endpunkt beschrieben wird.