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.
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.
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.