← Провайдер Cloudflare Terraform / terraform / tutorial
2. Отслеживание истории
В Initialize Terraform руководстве вы создали и применили базовую конфигурацию Cloudflare. Теперь вы сохраните эту конфигурацию в системе контроля версий, чтобы отслеживать изменения, проводить их проверку и при необходимости откатывать.
1. Используйте переменные окружения для аутентификации
Удалите учётные данные из файлов Terraform перед коммитом в систему контроля версий. Провайдер Cloudflare v5 автоматически считывает данные аутентификации из переменных окружения.
Обновите main.tf файл, чтобы удалить жёстко заданный API-токен:
terraform {
required_providers {
cloudflare = {
source = "cloudflare/cloudflare"
version = "~> 5"
}
}
}
provider "cloudflare" {
# API token will be read from CLOUDFLARE_API_TOKEN environment variable
}
variable "zone_id" {
description = "Cloudflare Zone ID"
type = string
sensitive = true
}
variable "account_id" {
description = "Cloudflare Account ID"
type = string
sensitive = true
}
variable "domain" {
description = "Domain name"
type = string
default = "example.com"
}
resource "cloudflare_dns_record" "www" {
zone_id = var.zone_id
name = "www"
content = "203.0.113.10"
type = "A"
ttl = 1
proxied = true
comment = "Domain verification record"
}Обновите ваш terraform.tfvars файле:
zone_id = "your-zone-id-here"
account_id = "your-account-id-here"
domain = "your-domain.com"Убедитесь, что ваш API-токен задан в качестве переменной среды:
export CLOUDFLARE_API_TOKEN="your-api-token-here"Убедитесь, что аутентификация работает:
terraform planTerraform может обнаружить изменения при сравнении новой конфигурации на основе переменных с существующими ресурсами. Это нормально при переходе от жёстко заданных значений к переменным:
# cloudflare_dns_record.www will be updated in-place
~ resource "cloudflare_dns_record" "www" {
~ name = "www.your-domain.com" -> "www"
~ zone_id = (sensitive value)
# (other attributes may show changes)
}
Plan: 0 to add, 1 to change, 0 to destroy.2. Сохраните конфигурацию в GitHub
Создайте .gitignore файл со следующим содержимым:
.terraform/
*.tfstate*
.terraform.lock.hcl
terraform.tfvarsИнициализируйте Git и зафиксируйте конфигурацию:
git init
git add main.tf .gitignore
git commit -m "Step 2 - Initial Terraform v5 configuration"Создайте репозиторий GitHub (через веб-интерфейс или GitHub CLI) и выполните push:
git branch -M main
git remote add origin https://github.com/YOUR_USERNAME/cf-config.git
git push -u origin mainТеперь конфигурация Terraform находится под контролем версий и готова для совместной работы команды. Конфиденциальные данные (API-токены, идентификаторы зон) хранятся отдельно от кода и остаются в безопасности.