# N DNS-зон, сгенерированных программно (в цикле) Пример-близнец `../dns_zones/`, но здесь зоны **не задаются вручную**, а генерируются из числа `var.zone_count`: ```hcl zones = { for i in range(1, var.zone_count + 1) : "${var.zone_prefix}-${i}" => { zone_name = "${var.zone_prefix}-${i}.${var.zone_domain}" records = { www = ..., api = ... } } } ``` Удобно, когда зон много и они однотипны (напр. 10 зон `tfzone-1 … tfzone-10`). ## Ресурсы | Ресурс | Сервис | Назначение | |---|---|---| | `nubes_zones_v2` | 109 | DNS-зона | | `nubes_zones_v2_record` | подресурс зоны | Запись внутри зоны (A / CNAME / …) | ## Разница с `../dns_zones/` | | `dns_zones` | `dns_zones_generated` | |---|---|---| | Источник зон | явная карта `var.zones` | `range(1, zone_count+1)` в `locals` | | Когда удобно | разный набор зон/записей | много однотипных зон | ## Как запустить ```bash cp terraform.tfvars.example terraform.tfvars # при желании: zone_count = N # api_token — в secrets.auto.tfvars (НЕ в terraform.tfvars!) terraform init terraform plan terraform apply # запускает пользователь ``` ## Проверки - После `apply` повторный `plan` должен давать `No changes`. - Изменение `zone_count` добавляет/убирает зоны (стабильные адреса `for_each`). - Чтобы зоны работали в интернете, домен у регистратора надо делегировать на NS `ns3.ngcloud.ru` / `ns4.ngcloud.ru`.