zinn-digital/zinn is onze officiële Terraform-provider, gepubliceerd op de Terraform Registry met ondertekende releases. Het beheert DNS-records op de domeinen in uw organisatie en leest uw sites, domeinen, pakketten en hostingregio's als gegevensbronnen. Sites, mailboxen en pakketten zelf worden momenteel niet beheerd door Terraform — gebruik daarvoor het dashboard, de API, de SDK's of de Zinnector®-CLI.
Installeren
terraform {
required_providers {
zinn = {
source = "zinn-digital/zinn"
}
}
}
# api_key falls back to ZINN_API_KEY.
provider "zinn" {}
Voer terraform init uit. Terraform downloadt de provider uit het register en controleert de handtekening ervan.
Een API-sleutel maken
Open de pagina API-sleutels van uw dashboard (app.zinndigital.com/api-keys) en klik op Een sleutel maken. Vink voor het beheren van DNS sites.view en domains.dns.manage aan onder Machtigingen. Exporteer deze voordat u Terraform uitvoert:
export ZINN_API_KEY=zdk_live_…
De gegevensbronnen zinn_regions en zinn_plans hebben geen sleutel nodig.
Een DNS-record beheren
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 maakt het record aan; het wijzigen van value of ttl werkt het ter plekke bij; het verwijderen van het blok verwijdert het. name accepteert @ voor het apex-domein, een relatieve naam zoals www, of een volledige naam.
Een bestaand record onder Terraform brengen
terraform import zinn_dns_record.www <domain_id>/<record_id>
Het domein-id is afkomstig van data.zinn_domains; het record-id wordt weergegeven door de DNS-recordlijst van de API.
Uw inventaris lezen
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-instellingen
api_key — de API-sleutel; standaard ingesteld op ZINN_API_KEY.
api_url — standaard ingesteld op ZINN_API_URL, daarna https://api.zinndigital.com.
org — de organisatie waarop actie moet worden ondernomen; standaard ingesteld op ZINN_ORG. Meestal niet nodig, omdat een sleutel bij één organisatie hoort.
Volgende stappen
- De handleiding op onze website: zinndigital.com/developers/terraform
- De provider op het Terraform-register: registry.terraform.io/providers/zinn-digital/zinn
- Broncode: github.com/Zinn-Digital/terraform-provider-zinn