Постачальник 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.

Створіть ключ API на своїй панелі керування

Чим керує сьогодні

Ресурс: 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.

Довідник API