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