zinn-digital/zinn ist unser offizieller Terraform-Provider, der in der Terraform Registry mit signierten Releases veröffentlicht wird. Er verwaltet DNS-Einträge auf den Domains in Ihrer Organisation und liest Ihre Websites, Domains, Tarife und Hosting-Regionen als Datenquellen aus. Websites, Postfächer und Tarife selbst werden derzeit nicht über Terraform verwaltet — verwenden Sie dafür das Dashboard, die API, die SDKs oder die Zinnector® CLI.
Installieren
terraform {
required_providers {
zinn = {
source = "zinn-digital/zinn"
}
}
}
# api_key falls back to ZINN_API_KEY.
provider "zinn" {}
Führen Sie terraform init aus. Terraform lädt den Anbieter aus der Registry herunter und überprüft dessen Signatur.
Einen API-Schlüssel erstellen
Öffnen Sie die Seite API-Schlüssel Ihres Dashboards (app.zinndigital.com/api-keys) und klicken Sie auf Einen Schlüssel erstellen. Um DNS zu verwalten, aktivieren Sie sites.view und domains.dns.manage unter Berechtigungen. Exportieren Sie ihn, bevor Sie Terraform ausführen:
export ZINN_API_KEY=zdk_live_…
Die Datenquellen zinn_regions und zinn_plans benötigen keinen Schlüssel.
Einen DNS-Eintrag verwalten
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] }
terraform apply erstellt den Datensatz; das Ändern von value oder ttl aktualisiert ihn direkt an Ort und Stelle; das Entfernen des Blocks löscht ihn. name akzeptiert @ für den Apex, einen relativen Namen wie www oder einen vollständigen Namen.
Einen bestehenden Datensatz unter die Verwaltung von Terraform bringen
terraform import zinn_dns_record.www <domain_id>/<record_id>
Die Domain-ID stammt aus data.zinn_domains; die Datensatz-ID wird in der DNS-Eintragsliste der API angezeigt.
Lesen Sie Ihr Inventar
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] }
Provider-Einstellungen
api_key — der API-Schlüssel; standardmäßig ZINN_API_KEY.
api_url — standardmäßig ZINN_API_URL, danach https://api.zinndigital.com.
org — die Organisation, für die Vorgänge ausgeführt werden sollen; standardmäßig ZINN_ORG. Normalerweise nicht erforderlich, da ein Schlüssel zu einer einzelnen Organisation gehört.
Weitere Schritte
- Der Leitfaden auf unserer Website: zinndigital.com/developers/terraform
- Der Provider in der Terraform Registry: registry.terraform.io/providers/zinn-digital/zinn
- Quellcode: github.com/Zinn-Digital/terraform-provider-zinn