🚀 Terraform Setup for Cloudflare DNS Management
Этот проект предоставляет Terraform-конфигурации для управления DNS-записями в Cloudflare. Он позволяет создавать различные записи DNS, включая A, CNAME, MX и TXT, используя API Cloudflare.
🔗 Репозиторий: GitHub
📌 Обзор
Конфигурация Terraform позволяет автоматизировать управление записями DNS в Cloudflare, включая:
1️⃣ A Records: Указывает домен или поддомен на IP-адрес.
2️⃣ CNAME Records: Создаёт алиасы для доменов.
3️⃣ MX Records: Настраивает почтовые серверы для домена.
4️⃣ TXT Records: Хранит текстовые данные, такие как SPF-записи для электронной почты.
🛠 Требования
Перед началом работы убедитесь, что у вас есть:
✔️ Аккаунт Cloudflare.
✔️ API-токен с разрешением на управление DNS-записями.
✔️ ID аккаунта и зоны Cloudflare для вашего домена.
✔️ Terraform установлен (рекомендуемая версия: 1.3+).
🔧 Переменные
Terraform использует следующие переменные:
variable "cf_account_id" {
description = "Cloudflare account ID"
type = string
}
variable "cf_api_token" {
description = "Cloudflare API token"
type = string
}
variable "cloudflare_zone_id" {
description = "Cloudflare zone ID для домена"
type = string
}
variable "domain" {
description = "Доменное имя"
type = string
default = "example.com"
}
⚙️ Конфигурация Terraform
📦 Providers
Terraform требует Cloudflare-провайдер для работы с API:
terraform {
required_providers {
cloudflare = {
source = "cloudflare/cloudflare"
version = "~> 4.0"
}
}
}
provider "cloudflare" {
api_token = var.cf_api_token
}
📌 Пример ресурсов
Создание A-записи
resource "cloudflare_record" "test" {
name = "test"
type = "A"
value = "IP-ADDRESS"
ttl = 1
proxied = false
zone_id = var.cloudflare_zone_id
}
🚀 Использование
🔹 1. Экспорт переменных окружения
export TF_VAR_cf_account_id="your_account_id"
export TF_VAR_cf_api_token="your_api_token"
export TF_VAR_cloudflare_zone_id="your_zone_id"
🔹 2. Инициализация Terraform
Запустите следующую команду для загрузки необходимых провайдеров:
terraform init
🔹 3. Планирование изменений
Чтобы увидеть, какие изменения будут применены:
terraform plan
🔹 4. Применение конфигурации
Запустите следующую команду для создания записей DNS:
terraform apply
🔹 5. Удаление ресурсов (при необходимости)
Чтобы удалить все записи DNS, управляемые Terraform:
terraform destroy
🎯 Заключение
Эта Terraform-конфигурация значительно упрощает управление DNS-записями в Cloudflare, обеспечивая консистентность и автоматизацию настроек.
Вы можете легко настроить переменные и ресурсы в соответствии с вашими потребностями.🚀