---
title: "Создать зону с ресурсными записями в DNS-хостинге (actual) через Terraform"
sidebar_label: "Создать зону с ресурсными записями"
description: "Как создать зону в DNS-хостинге (actual) с ресурсными записями A, MX и TXT"
sidebar_position: 1
---

import Formbricks from '@theme/MDXComponents/Formbricks'
import ConfigureProviders from '@site/terraform/_partials/common/configure-providers.mdx'
import ConfigureProvidersConfig from '@site/terraform/_partials/common/configure-providers-config.mdx'
import CreateResourcesAlert from '@site/terraform/_partials/common/create-resources-alert.mdx'

# Создать зону с ресурсными записями в DNS-хостинге (actual) через Terraform

<CreateResourcesAlert />

<br />

1. Опционально: [настройте провайдеры](#configure-providers).
2. [Создайте зону](#create-zone).
3. [Создайте ресурсные записи](#create-records).
4. [Делегируйте управление доменом](#delegate-domain).

## Конфигурационные файлы \{#config}

<details>
  <summary>Пример файла для настройки провайдеров</summary>

  <ConfigureProvidersConfig />
</details>

<details>
  <summary>Пример файла для создания зоны с ресурсными записями в DNS-хостинге (actual)</summary>

  ```hcl
  resource "selectel_domains_zone_v2" "zone_1" {
    name       = "example.com."
    project_id = selectel_vpc_project_v2.project_1.id
  }

  resource "selectel_domains_rrset_v2" "a_rrset_1" {
    zone_id    = selectel_domains_zone_v2.zone_1.id
    name       = selectel_domains_zone_v2.zone_1.name
    type       = "A"
    ttl        = 60
    project_id = selectel_vpc_project_v2.project_1.id
    records {
      content = "203.0.113.5"
    }
    records {
      content = "203.0.113.6"
    }
  }

  resource "selectel_domains_rrset_v2" "mx_rrset_1" {
    zone_id    = selectel_domains_zone_v2.zone_1.id
    name       = selectel_domains_zone_v2.zone_1.name
    type       = "MX"
    ttl        = 60
    project_id = selectel_vpc_project_v2.project_1.id
    records {
      content = "10 mail.example.org."
    }
  }

  resource "selectel_domains_rrset_v2" "txt_rrset_1" {
    zone_id    = selectel_domains_zone_v2.zone_1.id
    name       = selectel_domains_zone_v2.zone_1.name
    type       = "TXT"
    ttl        = 60
    project_id = selectel_vpc_project_v2.project_1.id
    records {
      content = "\"v=spf1 include:spf.mail.selcloud.ru ?all\""
    }
  }
  ```
</details>

## 1. Опционально: настроить провайдеры \{#configure-providers}

Если вы [настроили провайдеры](/terraform/configure-terraform-environment/#configure-providers) Selectel и OpenStack, пропустите этот шаг.

<ConfigureProviders />

## 2. Создать зону \{#create-zone}

```hcl
resource "selectel_domains_zone_v2" "zone_1" {
  name       = "example.com."
  project_id = selectel_vpc_project_v2.project_1.id
}
```

Здесь `name` — имя зоны, например `example.com.`.

Посмотрите подробное описание ресурса [selectel\_domains\_zone\_v2](/terraform/selectel-provider-reference/resources/domains_zone_v2/).

## 3. Создать ресурсные записи \{#create-records}

```hcl
resource "selectel_domains_rrset_v2" "a_rrset_1" {
  zone_id    = selectel_domains_zone_v2.zone_1.id
  name       = selectel_domains_zone_v2.zone_1.name
  type       = "A"
  ttl        = 60
  project_id = selectel_vpc_project_v2.project_1.id
  records {
    content = "203.0.113.5"
  }
  records {
    content = "203.0.113.6"
  }
}

resource "selectel_domains_rrset_v2" "mx_rrset_1" {
  zone_id    = selectel_domains_zone_v2.zone_1.id
  name       = selectel_domains_zone_v2.zone_1.name
  type       = "MX"
  ttl        = 60
  project_id = selectel_vpc_project_v2.project_1.id
  records {
    content = "10 mail.example.org."
  }
}

resource "selectel_domains_rrset_v2" "txt_rrset_1" {
  zone_id    = selectel_domains_zone_v2.zone_1.id
  name       = selectel_domains_zone_v2.zone_1.name
  type       = "TXT"
  ttl        = 60
  project_id = selectel_vpc_project_v2.project_1.id
  records {
    content = "\"v=spf1 include:spf.mail.selcloud.ru ?all\""
  }
}
```

Здесь:

* `type` — тип записи;
* `ttl` — время жизни записи в секундах, от 60 до 604 800;
* `content` — значение записи.

Посмотрите подробное описание ресурса [selectel\_domains\_rrset\_v2](/terraform/selectel-provider-reference/resources/domains_rrset_v2/).

## 4. Делегировать управление доменом \{#delegate-domain}

Чтобы передать управление ресурсными записями домена на серверы Selectel, домен нужно делегировать — указать в NS-записях домена эти серверы.

1. Перейдите в панель управления доменного регистратора, у которого зарегистрирован ваш домен.
2. В NS-записях замените значения на NS-серверы Selectel: `a.ns.selectel.ru`, `b.ns.selectel.ru`, `c.ns.selectel.ru`, `d.ns.selectel.ru`. Каждый сервер должен быть указан в отдельной записи.

<Formbricks />
