يُعد 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
- الـ provider على Terraform Registry: registry.terraform.io/providers/zinn-digital/zinn
- التعليمة البرمجية المصدرية: github.com/Zinn-Digital/terraform-provider-zinn