ارائهدهنده Terraform
DNS خود را به صورت کد مدیریت کنید
ارائهدهنده Terraform ما، zinn-digital/zinn، رکوردهای DNS را در دامنههای سازمان شما مدیریت میکند و سایتها، دامنهها، طرحها و مناطق میزبانی شما را بهعنوان منابع داده میخواند. این ارائهدهنده در Terraform Registry منتشر شده و بر روی همان API عمومی مشابه سایر بخشها ساخته شده است.
نصب
ارائهدهنده را اعلام کنید و terraform init را اجرا نمایید. نسخهها امضا شده هستند و Terraform هنگام دانلود ارائهدهنده، امضا را تأیید میکند.
terraform {
required_providers {
zinn = {
source = "zinn-digital/zinn"
}
}
}
# api_key falls back to ZINN_API_KEY.
provider "zinn" {}شروع سریع
یک دامنه را بر اساس نام جستجو کنید و www را به آن هدایت نمایید، سپس مناطق میزبانی را فهرست کنید.
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] }احراز هویت
ارائهدهنده، کلید API مربوط به هر سازمان را از آرگومان api_key یا از متغیر محیطی ZINN_API_KEY میخواند. منابع داده regions و plans به هیچ کلیدی نیاز ندارند. به کلید فقط مجوزهایی را بدهید که پیکربندی شما به آنها نیاز دارد، به عنوان مثال مشاهده سایتها و مدیریت DNS.
آنچه امروز مدیریت میکند
منبع: zinn_dns_record
رکوردهای DNS را در دامنههای خود ایجاد، بهروزرسانی، حذف و وارد کنید: A، AAAA، CNAME، MX، TXT، SRV و سایر انواعی که منطقه شما پشتیبانی میکند.
منابع داده
موجودیتهای zinn_sites و zinn_domains سازمان شما را میخوانند. zinn_regions و zinn_plans کاتالوگ عمومی را میخوانند و به هیچ کلیدی نیاز ندارند.
ایجاد شده بر اساس مشخصات
مدلهای درخواست و پاسخ ارائهدهنده از مشخصات OpenAPI ما تولید میشوند و نسخههای جدید بهطور خودکار در Terraform Registry منتشر میشوند.
موجودی خود را بخوانید
منابع داده به هیچ منبعی نیاز ندارند، بنابراین میتوانید با خواندن آنچه از قبل دارید شروع کنید.
# A read-only inventory of your organisation and the catalogue.
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] }پرسشها
آیا ارائهدهنده Terraform دارید؟
بله. از source = "zinn-digital/zinn" موجود در Terraform Registry استفاده کنید. در حال حاضر این ابزار سوابق DNS را مدیریت کرده و سایتها، دامنهها، پلنها و مناطق میزبانی را میخواند.
آیا Terraform میتواند سایتها یا صندوقهای پستی ایجاد کند؟
هنوز نه. سایتها، صندوقهای پستی و طرحها در پیشخوان، از طریق API، کیتهای توسعه نرمافزار (SDKs) یا Zinnector® CLI مدیریت میشوند. ارائهدهنده رکوردهای DNS را مدیریت میکند و بقیه موارد را میخواند.
چگونه یک رکورد DNS موجود را تحت مدیریت Terraform قرار دهم؟
دستور terraform import را با شناسه دامنه و شناسه رکورد که با یک خط مورب از هم جدا شدهاند اجرا کنید، به عنوان مثال terraform import zinn_dns_record.www <domain_id>/<record_id>.
کاوش در همه نقاط پایانی
هر موردی که ارائهدهنده هنوز آن را مدیریت نمیکند در ایپیآی موجود است، که در مرجع ایپیآی نقطه پایانی به نقطه پایانی شرح داده شده است.