zinn-digital/zinn é o nosso provedor oficial do Terraform, publicado no Terraform Registry com versões assinadas. Ele gerencia registros DNS nos domínios da sua organização e lê seus sites, domínios, planos e regiões de hospedagem como fontes de dados. Os sites, caixas de correio e planos em si não são gerenciados pelo Terraform atualmente — use o painel, a API, os SDKs ou a CLI do Zinnector® para eles.
Instalar
terraform {
required_providers {
zinn = {
source = "zinn-digital/zinn"
}
}
}
# api_key falls back to ZINN_API_KEY.
provider "zinn" {}
Execute terraform init. O Terraform baixa o provedor do registro e verifica sua assinatura.
Criar uma chave de API
Abra a página Chaves de API do seu painel (app.zinndigital.com/api-keys) e pressione Criar uma chave. Para gerenciar o DNS, marque sites.view e domains.dns.manage em Permissões. Exporte-a antes de executar o Terraform:
export ZINN_API_KEY=zdk_live_…
As fontes de dados zinn_regions e zinn_plans não precisam de chave.
Gerenciar um registro 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 cria o registro; alterar value ou ttl o atualiza no local; remover o bloco o exclui. name aceita @ para o apex, um nome relativo como www ou um nome completo.
Colocar um registro existente sob o Terraform
terraform import zinn_dns_record.www <domain_id>/<record_id>
O id de domínio vem de data.zinn_domains; o id de registro é exibido pela lista de registros DNS da API.
Leia o seu inventário
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] }
Configurações do provedor
api_key — a chave de API; o padrão é ZINN_API_KEY.
api_url — o padrão é ZINN_API_URL e, em seguida, https://api.zinndigital.com.
org — a organização sobre a qual atuar; o padrão é ZINN_ORG. Geralmente desnecessário, pois uma chave pertence a uma única organização.
Para onde ir a seguir
- O guia em nosso site: zinndigital.com/developers/terraform
- O provedor no Terraform Registry: registry.terraform.io/providers/zinn-digital/zinn
- Código-fonte: github.com/Zinn-Digital/terraform-provider-zinn