41 lines
1.7 KiB
Markdown
41 lines
1.7 KiB
Markdown
# DNS-зоны и записи через Terraform
|
|
|
|
Пример: доменные зоны компании и записи в них — целиком через Terraform.
|
|
Зоны задаются картой `var.zones` (`for_each`), записи — вложенным циклом
|
|
(`flatten` + `for_each`).
|
|
|
|
## Ресурсы
|
|
|
|
| Ресурс | Сервис | Назначение |
|
|
|---|---|---|
|
|
| `nubes_zones_v2` | 109 | DNS-зона |
|
|
| `nubes_zones_v2_record` | подресурс зоны | Запись внутри зоны (A / CNAME / …) |
|
|
|
|
## Что в конфиге
|
|
|
|
- N зон из `var.zones` (по умолчанию 2: `tfzone-a.test`, `tfzone-b.test`);
|
|
- по 3 записи в каждой зоне (`A`, `A`, `CNAME`).
|
|
|
|
Чтобы добавить/убрать зону или запись — правьте `var.zones`, затем `apply`.
|
|
|
|
## Как запустить
|
|
|
|
```bash
|
|
cp terraform.tfvars.example terraform.tfvars # подставить api_endpoint (если нужно)
|
|
# api_token — в secrets.auto.tfvars (НЕ в terraform.tfvars!)
|
|
terraform init
|
|
terraform plan
|
|
terraform apply # запускает пользователь
|
|
```
|
|
|
|
## Проверки
|
|
|
|
- После `apply` повторный `plan` должен давать `No changes`.
|
|
- Изменение значения записи → обычный `apply` (поле `record_input` модифицируемое).
|
|
- Чтобы зона работала в интернете, домен у регистратора надо делегировать на NS
|
|
`ns3.ngcloud.ru` / `ns4.ngcloud.ru`.
|
|
|
|
## См. также
|
|
|
|
- `../dns_zones_generated/` — тот же сценарий, но N зон генерируются программно.
|