محیط 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