From cf-terraforming-spec
Cloudflare cf-terraforming CLI の仕様と使い方に関する knowledge。既存リソースのインポート、HCL 生成、Terraform 連携について回答。Use when user asks about cf-terraforming, importing Cloudflare resources to Terraform, or generating HCL from existing Cloudflare setup.
How this skill is triggered — by the user, by Claude, or both
Slash command
/cf-terraforming-spec:cf-terraforming-knowledgeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
`cf-terraforming` は、既存の Cloudflare リソースを Terraform の設定(HCL)およびステートに変換するためのコマンドラインツールです。
cf-terraforming は、既存の Cloudflare リソースを Terraform の設定(HCL)およびステートに変換するためのコマンドラインツールです。
このツールを使用することで、手動で作成した Cloudflare の設定を Infrastructure as Code (IaC) 管理下にスムーズに移行できます。
brew tap cloudflare/cloudflare
brew install cloudflare/cloudflare/cf-terraforming
環境変数を使用して API 認証情報を設定します。
export CLOUDFLARE_API_TOKEN="YOUR_API_TOKEN"
export CLOUDFLARE_API_KEY="YOUR_API_KEY"
export CLOUDFLARE_EMAIL="YOUR_EMAIL"
既存のリソースを Terraform に取り込む手順は大きく分けて「設定の生成」と「ステートのインポート」の2段階です。
まず、Terraform プロジェクトで Cloudflare プロバイダを初期化しておく必要があります。
# providers.tf
terraform {
required_providers {
cloudflare = {
source = "cloudflare/cloudflare"
version = "~> 4.0"
}
}
}
provider "cloudflare" {}
terraform init
generate)cf-terraforming generate コマンドを使用して、既存のリソースから Terraform 設定ファイルを生成します。
cf-terraforming generate --resource-type "cloudflare_record" --zone <ZONE_ID> > cloudflare_dns_records.tf
--resource-type: インポートするリソースの種類(例: cloudflare_record, cloudflare_worker_script など)。--zone / --account: 範囲を特定するための ID。import)生成した設定に対応する実際のデータを Terraform のステートファイルに読み込みます。
--modern-import-block フラグを使用して、import ブロックを生成するのが現在の推奨される方法です。
cf-terraforming import --resource-type "cloudflare_record" --zone <ZONE_ID> --modern-import-block > imports.tf
生成された import ブロックを含むファイルを作成した後、以下のコマンドでインポートを完了させます。
terraform plan
terraform apply
フラグなしで実行すると、個別の terraform import コマンドがリストアップされます。
cf-terraforming import --resource-type "cloudflare_record" --zone <ZONE_ID>
# 出力されたコマンドをコピーして実行:
# terraform import cloudflare_record.example <ZONE_ID>/<RECORD_ID>
terraform_managed_resource_<ID> のようになります。必要に応じてインポート前に分かりやすい名前に変更してください。cf-terraforming に対応しているわけではありません。未対応のものは手動で設定を作成する必要があります。cloudflare_record (DNS)cloudflare_worker_script (Workers)cloudflare_worker_route (Workers Routes)cloudflare_zone (Zones)cloudflare_pages_project (Pages)npx claudepluginhub biwakonbu/cc-plugins --plugin cf-terraforming-specProvisions Cloudflare infrastructure using OpenTofu/Terraform for zones, DNS records, WAF rules, SSL settings, Page Rules, and cache configurations.
Guides writing and organizing Terraform HCL configurations for cloud resource provisioning, including providers, resources, variables, outputs, data sources, locals, commands, and file structure best practices.
Manages Terraform IaC with HCL configuration, state management, modular design, plan-apply workflows for cloud and on-prem resource provisioning.