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.

Alle Entwicklerdokumentationen →

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.

Erstellen Sie einen API-Schlüssel in Ihrem Dashboard

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.

API-Referenz