zinn-digital/zinn est notre fournisseur officiel Terraform, publié sur le Terraform Registry avec des versions signées. Il gère les enregistrements DNS sur les domaines de votre organisation, et il lit vos sites, domaines, forfaits et régions d’hébergement en tant que sources de données. Les sites, boîtes aux lettres et forfaits eux-mêmes ne sont pas gérés par Terraform à ce jour — utilisez le tableau de bord, l’API, les SDK ou la Zinnector® CLI pour ceux-ci.
Installer
terraform {
required_providers {
zinn = {
source = "zinn-digital/zinn"
}
}
}
# api_key falls back to ZINN_API_KEY.
provider "zinn" {}
Exécutez terraform init. Terraform télécharge le fournisseur depuis le registre et vérifie sa signature.
Créer une clé API
Ouvrez la page Clés API de votre tableau de bord (app.zinndigital.com/api-keys) et appuyez sur Créer une clé. Pour gérer le DNS, cochez sites.view et domains.dns.manage sous Autorisations. Exportez-la avant d’exécuter Terraform :
export ZINN_API_KEY=zdk_live_…
Les sources de données zinn_regions et zinn_plans ne nécessitent aucune clé.
Gérer un enregistrement DNS
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 crée l’enregistrement ; modifier value ou ttl le met à jour sur place ; supprimer le bloc le supprime. name accepte @ pour l’apex, un nom relatif tel que www, ou un nom complet.
Placer un enregistrement existant sous la gestion de Terraform
terraform import zinn_dns_record.www <domain_id>/<record_id>
L’identifiant de domaine provient de data.zinn_domains ; l’identifiant d’enregistrement est affiché par la liste des enregistrements DNS de l’API.
Consultez votre inventaire
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] }
Paramètres du provider
api_key — la clé API ; la valeur par défaut est ZINN_API_KEY.
api_url — la valeur par défaut est ZINN_API_URL, puis https://api.zinndigital.com.
org — l’organisation ciblée ; la valeur par défaut est ZINN_ORG. Généralement inutile, car une clé appartient à une seule organisation.
Pour aller plus loin
- Le guide sur notre site web : zinndigital.com/developers/terraform
- Le provider sur le Terraform Registry : registry.terraform.io/providers/zinn-digital/zinn
- Code source : github.com/Zinn-Digital/terraform-provider-zinn