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