Files
tf_examples/dns_zones_generated/README.md
T

71 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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)` |
| Когда | разный набор зон/записей | много однотипных зон |
## Быстрый старт
```bash
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`:
```hcl
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`.