Terraform を初期化する チュートリアルでは、基本的な Cloudflare 設定を作成して適用しました。ここでは、追跡、レビュー、ロールバックのために、この設定をバージョン管理へ保存します。
バージョン管理へコミットする前に、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.次の内容で .gitignore ファイルを作成します。
.terraform/
*.tfstate*
.terraform.lock.hcl
terraform.tfvarsGit を初期化し、設定をコミットします。
git init
git add main.tf .gitignore
git commit -m "Step 2 - Initial Terraform v5 configuration"GitHub リポジトリを作成し(Web インターフェイスまたは GitHub CLI)、プッシュします。
git branch -M main
git remote add origin https://github.com/YOUR_USERNAME/cf-config.git
git push -u origin mainTerraform 設定はバージョン管理され、チームでの共同作業に使える状態です。機密データ(API トークン、ゾーン ID)はコードと分けて安全に保てます。