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 รองรับ @ สำหรับเอเพ็กซ์ ชื่อสัมพัทธ์ เช่น 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] }
การตั้งค่าผู้ให้บริการ
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