Files
tf_examples/dns_zones_generated/README.md
T

2.9 KiB
Raw Blame History

N DNS-зон, сгенерированных циклом

То же, что ../dns_zones/, но зоны не перечисляются руками — генерируются из одного числа zone_count.

Что получится после apply

По умолчанию — 10 зон tfzone-1.test … tfzone-10.test, по 2 записи в каждой:

Зона Записи
tfzone-1.test www → A 10.0.1.1 · api → A 10.0.1.2
tfzone-2.test www → A 10.0.2.1 · api → A 10.0.2.2
… …

Адреса зависят от номера зоны: 10.0.<номер>.1 и 10.0.<номер>.2.

Когда этот вариант удобнее

Зон много и они однотипны (например 100 поддоменов). Вместо перечисления — одно число.

dns_zones dns_zones_generated
Источник зон карта zones range(1, zone_count + 1)
Когда разный набор зон/записей много однотипных зон

Быстрый старт

cd dns_zones_generated
cp terraform.tfvars.example terraform.tfvars

# 1. Создайте secrets.auto.tfvars (токен — СЕКРЕТ, НЕ в terraform.tfvars):
#    api_token = "<JWT>"
#    JWT берётся в ЛК: Профиль → Токены.

terraform init
terraform plan
terraform apply

Настройка

В terraform.tfvars:

Переменная Дефолт Что делает
zone_count 10 сколько зон создать
zone_prefix tfzone префикс имени
zone_domain test домен (суффикс FQDN)

Итоговое имя зоны = <prefix>-<i>.<domain>, например tfzone-3.test.

Как поменять набор записей

Записи заданы шаблоном в locals.zones (main.tf). По умолчанию www и api. Добавить/убрать — правьте блок records:

records = {
  www = { type = "A", values = ["10.0.${i}.1"] }
  api = { type = "A", values = ["10.0.${i}.2"] }
  db  = { type = "A", values = ["10.0.${i}.3"] }   # добавили третью запись
}

Важно

  • Токен — только в secrets.auto.tfvars (файл в .gitignore). Никогда не коммитить.
  • Чтобы зоны работали в интернете, у регистратора делегируйте домен на NS ns3.ngcloud.ru / ns4.ngcloud.ru.
  • Изменение zone_count добавляет/убирает зоны; ключи for_each стабильны — существующие зоны не пересоздаются.
  • Проверка: после apply повторный terraform plan должен дать No changes.