zinn-digital/zinn е нашият официален доставчик на Terraform, публикуван в Terraform Registry с подписани версии. Той управлява DNS записи за домейните във вашата организация и чете вашите сайтове, домейни, планове и хостинг региони като източници на данни. Самите сайтове, пощенски кутии и планове в момента не се управляват от Terraform — за тях използвайте контролния панел, API, SDK или Zinnector® CLI.
Инсталиране
terraform {
required_providers {
zinn = {
source = "zinn-digital/zinn"
}
}
}
# api_key falls back to ZINN_API_KEY.
provider "zinn" {}
Изпълнете terraform init. Terraform изтегля доставчика от регистъра и проверява неговия подпис.
Създаване на API ключ
Отворете страницата API ключове на вашето табло за управление (app.zinndigital.com/api-keys) и натиснете Създаване на ключ. За управление на DNS поставете отметка на sites.view и domains.dns.manage под Разрешения. Експортирайте го преди да стартирате Terraform:
export ZINN_API_KEY=zdk_live_…
Източниците на данни zinn_regions и zinn_plans не се нуждаят от ключ.
Управление на 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 създава записа; промяната на value или ttl го актуализира на място; премахването на блока го изтрива. name приема @ за apex, относително име като www или пълно име.
Прехвърляне на съществуващ запис под управлението на Terraform
terraform import zinn_dns_record.www <domain_id>/<record_id>
Идентификаторът на домейна идва от data.zinn_domains; идентификаторът на записа се показва от списъка с DNS записи на API.
Прегледайте инвентара си
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] }
Настройки на Provider
api_key — API ключът; по подразбиране е ZINN_API_KEY.
api_url — по подразбиране е ZINN_API_URL, след това https://api.zinndigital.com.
org — организацията, върху която да се действа; по подразбиране е ZINN_ORG. Обикновено не е необходимо, тъй като даден ключ принадлежи на една организация.
Накъде по-нататък
- Ръководството на нашия уебсайт: zinndigital.com/developers/terraform
- Доставчикът в Terraform Registry: registry.terraform.io/providers/zinn-digital/zinn
- Изходен код: github.com/Zinn-Digital/terraform-provider-zinn