zinn-digital/zinn हाम्रो आधिकारिक Terraform प्रदायक हो, जुन हस्ताक्षरित रिलीजहरूसहित Terraform Registry मा प्रकाशित गरिएको छ। यसले तपाईंको संस्थाका डोमेनहरूमा DNS रेकर्डहरू व्यवस्थापन गर्दछ, र यसले तपाईंको साइटहरू, डोमेनहरू, योजनाहरू र होस्टिङ क्षेत्रहरू लाई डेटा स्रोतहरूको रूपमा पढ्दछ। साइटहरू, मेलबक्सहरू र योजनाहरू आफैं आज Terraform द्वारा व्यवस्थित छैनन् — तिनीहरूका लागि ड्यासबोर्ड, API, SDKs वा 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>
डोमेन id data.zinn_domains बाट आउँछ; रेकर्ड id API को DNS रेकर्ड सूचीद्वारा देखाइन्छ।
आफ्नो इन्भेन्टरी पढ्नुहोस्
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 मा provider: registry.terraform.io/providers/zinn-digital/zinn
- स्रोत कोड: github.com/Zinn-Digital/terraform-provider-zinn