Proveedor de Terraform

Gestione su DNS como código

Nuestro proveedor de Terraform, zinn-digital/zinn, gestiona los registros DNS de los dominios de su organización y lee sus sitios, dominios, planes y regiones de alojamiento como fuentes de datos. Está publicado en el Terraform Registry y desarrollado sobre la misma API pública que todo lo demás.

Toda la documentación para desarrolladores →

Instalar

Declare el proveedor y ejecute terraform init. Las versiones están firmadas y Terraform verifica la firma cuando descarga el proveedor.

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

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

Inicio rápido

Busque un dominio por nombre y dirija www hacia él; a continuación, enumere las regiones de alojamiento.

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

Autenticación

El proveedor lee una clave de API por organización a partir del argumento api_key o de la variable de entorno ZINN_API_KEY. Las fuentes de datos regions y plans no necesitan clave. Otorgue a la clave únicamente los permisos que su configuración necesite, por ejemplo ver sitios y gestionar el DNS.

Cree una clave de API en su panel de control

Lo que gestiona hoy

Recurso: zinn_dns_record

Cree, actualice, elimine e importe registros DNS en sus dominios: A, AAAA, CNAME, MX, TXT, SRV y los demás tipos compatibles con su zona.

Fuentes de datos

zinn_sites y zinn_domains leen su organización. zinn_regions y zinn_plans leen el catálogo público y no necesitan ninguna clave.

Generado a partir de la especificación

Los modelos de solicitud y respuesta del proveedor se generan a partir de nuestra especificación OpenAPI, y las nuevas versiones se publican automáticamente en el Terraform Registry.

Leer su inventario

Las fuentes de datos no necesitan ningún recurso, por lo que puede comenzar leyendo lo que ya tiene.

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

Preguntas

¿Dispone de un proveedor de Terraform?

Sí. Utilice source = "zinn-digital/zinn" del Terraform Registry. En la actualidad gestiona registros DNS y lee sitios, dominios, planes y regiones de alojamiento.

¿Puede Terraform crear sitios o buzones de correo?

Todavía no. Los sitios, los buzones de correo y los planes se gestionan en el panel de control, a través de la API, los SDK o la Zinnector® CLI. El proveedor gestiona los registros DNS y lee el resto.

¿Cómo transfiero un registro DNS existente a la administración de Terraform?

Ejecute terraform import con el id del dominio y el id del registro separados por una barra diagonal, por ejemplo terraform import zinn_dns_record.www <domain_id>/<record_id>.

Explorar cada extremo

Todo lo que el proveedor aún no gestione está disponible en la API, la cual se describe punto de conexión por punto de conexión en la referencia de la API.

Referencia de la API