Terraform-provider
Beheer uw DNS als code
Onze Terraform-provider, zinn-digital/zinn, beheert DNS-records voor de domeinen in uw organisatie en leest uw sites, domeinen, pakketten en hostingregio's als gegevensbronnen uit. Deze is gepubliceerd op het Terraform Registry en gebouwd op dezelfde openbare API als al het andere.
Installeren
Declareer de provider en voer terraform init uit. Releases zijn ondertekend en Terraform verifieert de handtekening wanneer het de provider downloadt.
terraform {
required_providers {
zinn = {
source = "zinn-digital/zinn"
}
}
}
# api_key falls back to ZINN_API_KEY.
provider "zinn" {}Snelle start
Zoek een domein op naam en verwijs www ernaar, en geef vervolgens de hostingregio's weer.
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] }Authenticatie
De provider leest een API-sleutel per organisatie uit het argument api_key of uit de omgevingsvariabele ZINN_API_KEY. De gegevensbronnen regions en plans vereisen geen sleutel. Geef de sleutel alleen de machtigingen die uw configuratie nodig heeft, bijvoorbeeld het bekijken van sites en het beheren van DNS.
Wat het vandaag beheert
Resource: zinn_dns_record
Maak, bewerk, verwijder en importeer DNS-records op uw domeinen: A, AAAA, CNAME, MX, TXT, SRV en de overige typen die uw zone ondersteunt.
Gegevensbronnen
zinn_sites en zinn_domains lezen uw organisatie. zinn_regions en zinn_plans lezen de openbare catalogus en hebben geen sleutel nodig.
Gegenereerd op basis van de specificatie
De verzoek- en antwoordmodellen van de provider worden gegenereerd vanuit onze OpenAPI-specificatie, en nieuwe releases worden automatisch gepubliceerd in de Terraform Registry.
Uw inventaris lezen
Gegevensbronnen hebben helemaal geen bronnen nodig, dus u kunt beginnen met het lezen van wat u al hebt.
# 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] }Vragen
Beschikt u over een Terraform-provider?
Ja. Gebruik source = "zinn-digital/zinn" uit de Terraform Registry. Momenteel beheert het DNS-records en leest het sites, domeinen, pakketten en hostingregio's.
Kan Terraform sites of mailboxen aanmaken?
Nog niet. Sites, postbussen en abonnementen worden beheerd in het dashboard, via de API, de SDK's of de Zinnector® CLI. De provider beheert DNS-records en leest de rest.
Hoe breng ik een bestaand DNS-record onder beheer van Terraform?
Voer terraform import uit met de domein-id en de record-id gescheiden door een schuine streep, bijvoorbeeld terraform import zinn_dns_record.www <domain_id>/<record_id>.
Verken elk eindpunt
Alles wat de provider nog niet beheert, is beschikbaar in de API, die eindpunt voor eindpunt wordt beschreven in de API-referentie.