我可以对 CloudFlare 配置进行版本控制吗?

Can I version control CloudFlare configuration?

我将 Cloudflare 用于 public 网站。最近,我一直在通过 website/UI 调整许多不同的配置值。有没有办法 download/upload 配置,以便它可以进行版本控制?

您可以使用 Terraform 配置 Cloudflare。查看 Terraform Cloudflare 提供商 here.

您可以使用 Cloudflare 提供的名为 cf-terraforming 的工具,该工具允许将 Cloudflare 安装程序下载到 Terraform 中。

这是使用 Terraform 的快速演示:

locals {
  domain   = "example.com"
  hostname = "example.com" # TODO: Varies by environment
}

variable "CLOUDFLARE_ACCOUNT_ID" {}
variable "CLOUDFLARE_API_TOKEN" { sensitive = true }

provider "cloudflare" {
  account_id = var.CLOUDFLARE_ACCOUNT_ID
  api_token  = var.CLOUDFLARE_API_TOKEN
}

resource "cloudflare_zone" "default" {
  zone = local.domain
  plan = "free"
}

resource "cloudflare_record" "a" {
  zone_id = cloudflare_zone.default.id
  name    = local.hostname
  value   = "192.0.2.1"
  type    = "A"
  ttl     = 1
  proxied = true
}

查找完整示例,请参见Terraform Starter Kit:

  • infra/dns-zone.tf
  • infra/dns-records.tf

它与提供免费帐户的 Terraform Cloud“后端”配合使用效果特别好。