zinn-digital/zinn — это наш официальный провайдер Terraform, опубликованный в Terraform Registry с подписанными релизами. Он управляет DNS-записями на доменах вашей организации и считывает ваши сайты, домены, тарифные планы и регионы хостинга в качестве источников данных. Сами сайты, почтовые ящики и тарифные планы в настоящее время не управляются с помощью Terraform — используйте для них панель управления, API, SDK или CLI Zinnector®.
Установка
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