Доставчик на 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, SDK-тата или Zinnector® CLI. Доставчикът управлява DNS записите и чете останалото.
Как да прехвърля съществуващ DNS запис под управлението на Terraform?
Изпълнете terraform import с идентификатора на домейна и идентификатора на записа, разделени с наклонена черта, например terraform import zinn_dns_record.www <domain_id>/<record_id>.
Разгледайте всяка крайна точка
Всичко, което доставчикът все още не управлява, е налично в API, което е описано крайна точка по крайна точка в справочника за API.