Το 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 την ενημερώνει επί τόπου· η αφαίρεση του block τη διαγράφει. Το name δέχεται το @ για το apex, ένα σχετικό όνομα όπως www, ή ένα πλήρες όνομα.
Εισαγωγή υπάρχουσας εγγραφής υπό τη διαχείριση του Terraform
terraform import zinn_dns_record.www <domain_id>/<record_id>
Το αναγνωριστικό τομέα (domain id) προέρχεται από το data.zinn_domains· το αναγνωριστικό εγγραφής (record id) εμφανίζεται από τη λίστα εγγραφών 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