Provedor do Terraform

Gerencie seu DNS como código

Nosso provedor Terraform, zinn-digital/zinn, 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. Ele foi publicado no Terraform Registry e construído sobre a mesma API pública que tudo o mais.

Toda a documentação para desenvolvedores →

Instalar

Declare o provedor e execute terraform init. Os lançamentos são assinados, e o Terraform verifica a assinatura ao baixar o provedor.

terraform {
  required_providers {
    zinn = {
      source = "zinn-digital/zinn"
    }
  }
}

# api_key falls back to ZINN_API_KEY.
provider "zinn" {}

Início rápido

Pesquise um domínio pelo nome e aponte www para ele; em seguida, liste as regiões de hospedagem.

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] }

Autenticação

O provedor lê uma chave de API por organização a partir do argumento api_key ou da variável de ambiente ZINN_API_KEY. As fontes de dados regions e plans não precisam de chave. Conceda à chave apenas as permissões de que sua configuração precisa, como visualizar sites e gerenciar o DNS.

Crie uma chave de API no seu painel

O que gerencia hoje

Recurso: zinn_dns_record

Crie, atualize, exclua e importe registros DNS em seus domínios: A, AAAA, CNAME, MX, TXT, SRV e os outros tipos compatíveis com sua zona.

Fontes de dados

zinn_sites e zinn_domains leem sua organização. zinn_regions e zinn_plans leem o catálogo público e não precisam de chave.

Gerado a partir da especificação

Os modelos de solicitação e resposta do provedor são gerados a partir de nossa especificação OpenAPI, e as novas versões são publicadas automaticamente no Terraform Registry.

Ler seu inventário

As fontes de dados não precisam de nenhum recurso, portanto você pode começar lendo o que já tem.

# 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] }

Perguntas

Você tem um provedor do Terraform?

Sim. Use source = "zinn-digital/zinn" do Terraform Registry. Atualmente, ele gerencia registros DNS e lê sites, domínios, planos e regiões de hospedagem.

O Terraform pode criar sites ou caixas de correio?

Ainda não. Sites, caixas de correio e planos são gerenciados no painel, por meio da API, dos SDKs ou da Zinnector® CLI. O provedor gerencia os registros DNS e lê o restante.

Como posso colocar um registro DNS existente sob o gerenciamento do Terraform?

Execute terraform import com o id do domínio e o id do registro separados por uma barra, por exemplo terraform import zinn_dns_record.www <domain_id>/<record_id>.

Explorar todos os endpoints

Tudo o que o provedor ainda não gerencia está disponível na API, descrita endpoint por endpoint na referência da API.

Referência da API