zinn-digital/zinn to nasz oficjalny dostawca Terraform, opublikowany w Terraform Registry z podpisanymi wydaniami. Zarządza rekordami DNS w domenach w Państwa organizacji oraz odczytuje Państwa witryny, domeny, plany i regiony hostingu jako źródła danych. Same witryny, skrzynki pocztowe i plany nie są obecnie zarządzane przez Terraform — do ich obsługi należy używać panelu kontrolnego, interfejsu API, zestawów SDK lub wiersza poleceń Zinnector® CLI.
Instalacja
terraform {
required_providers {
zinn = {
source = "zinn-digital/zinn"
}
}
}
# api_key falls back to ZINN_API_KEY.
provider "zinn" {}
Uruchom terraform init. Terraform pobierze dostawcę z rejestru i zweryfikuje jego podpis.
Utwórz klucz API
Otwórz stronę Klucze API w swoim panelu (app.zinndigital.com/api-keys) i naciśnij Utwórz klucz. Aby zarządzać DNS, zaznacz sites.view oraz domains.dns.manage w sekcji Uprawnienia. Wyeksportuj go przed uruchomieniem narzędzia Terraform:
export ZINN_API_KEY=zdk_live_…
Źródła danych zinn_regions i zinn_plans nie wymagają żadnego klucza.
Zarządzaj rekordem 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 tworzy rekord; zmiana value lub ttl aktualizuje go w miejscu; usunięcie bloku go usuwa. name akceptuje @ dla wierzchołka (apex), nazwę względną, taką jak www, lub pełną nazwę.
Przenoszenie istniejącego rekordu pod kontrolę Terraform
terraform import zinn_dns_record.www <domain_id>/<record_id>
Identyfikator domeny pochodzi z data.zinn_domains; identyfikator rekordu jest wyświetlany przez listę rekordów DNS interfejsu API.
Sprawdź swoje zasoby
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] }
Ustawienia dostawcy
api_key — klucz API; domyślnie ZINN_API_KEY.
api_url — domyślnie ZINN_API_URL, następnie https://api.zinndigital.com.
org — organizacja, na której mają być wykonywane działania; domyślnie ZINN_ORG. Zazwyczaj niepotrzebne, ponieważ klucz należy do jednej organizacji.
Co dalej
- Przewodnik w naszej witrynie: zinndigital.com/developers/terraform
- Dostawca w Terraform Registry: registry.terraform.io/providers/zinn-digital/zinn
- Kod źródłowy: github.com/Zinn-Digital/terraform-provider-zinn