Início Tecnologia Defina e esqueça: faça backup de recursos CloudFlare com a Terraforming CF

Defina e esqueça: faça backup de recursos CloudFlare com a Terraforming CF

4
0

 

Neste guia, vou mostrar como usei cf-terraforming Para importar os recursos do CloudFlare para o código Terraform.

Nota importante: Na iteração atual, uso o Terraform principalmente como um mecanismo de armazenamento de backup para os recursos do CloudFlare. Gerenciamento e modificações continuarão sendo realizados manualmente através do painel Cloudflare, pois essa abordagem é geralmente mais rápida e eficiente.

Configurando o acesso ao Cloudflare

Antes de usar o Terraform com o CloudFlare, os usuários precisam configurar as variáveis ​​de ambiente apropriadas.

Usando uma chave de API

Se autenticar através de uma chave da API, exporte as seguintes variáveis ​​de ambiente:

export CLOUDFLARE_API_KEY=
export CLOUDFLARE_EMAIL=

Usando um token de API

Como alternativa, a autenticação pode ser feita com um token da API exportando apenas esta variável:

export CLOUDFLARE_API_TOKEN=

A autenticação do token da API da CloudFlare é flexível, mas requer configuração complexa. Para simplificar o processo, recomendamos o uso de uma chave da API associada a uma conta de usuário. No entanto, use -o com cautela, pois a chave da API concede acesso total a todas as ações do CloudFlare.

Para encontrar a chave da API global ou criar um token da API, visite os tokens da API CloudFlare.

Usando cf-terraforming

Cloudflare fornece uma ferramenta oficial, cf-terraformingque pode gerar a configuração e o estado da Terraform a partir dos recursos existentes. Esta é a abordagem recomendada para automatizar o processo de importação.

  • Testado em cf-terraforming versão 0.23.3.
  • Nem todos os recursos são suportados por cf-terraforming. Encontre a lista de recursos suportados aqui.
  • Esteja ciente de que, depois de atualizar o fornecedor da CloudFlare Terraform para a versão 5.xx ou superior, as definições de recursos podem mudar.

Guia passo a passo: importação com terras de CF cf-terraforming

1. Inicialize o fornecedor do Terraform:

Para usar esta ferramenta, inicialize o provedor. Crie um arquivo temporário, por exemplo, providers.tfcom a seguinte configuração:

terraform {
  required_providers {
    cloudflare = {
      source  = "cloudflare/cloudflare"
      version = "4.43.0"
    }
  }
}

provider "cloudflare" {}

Em seguida, inicialize o Terraform:

terraform init

2. Instale cf-terraforming:

brew install cloudflare/cloudflare/cf-terraforming

Ou faça o download do lançamento do repositório do GitHub.

3. Gere Configuração do Recurso do Terraform (por exemplo, para um registro DNS):

cf-terraforming generate --resource-type cloudflare_record --zone  > generate.tf

Exemplo de saída:

resource "cloudflare_record" "terraform_managed_resource_" {
  content = "EXAMPLE_CONTENT"
  name    = "EXAMPLE_NAME"
  proxied = false
  ttl     = 1
  type    = "TXT"
  zone_id = ""
}

4. Gere a configuração de importação do Terraform:

cf-terraforming import --resource-type cloudflare_record --zone  --modern-import-block > import.tf

Exemplo de saída:

import {
  to = cloudflare_record.terraform_managed_resource_
  id = "/"
}

5 Aplique configuração do Terraform:

terraform apply

Considerações importantes

Um aspecto crucial do uso cf-terraforming está distinguindo entre os recursos no nível da conta e na zona. Antes de usar cf-terraformingconsulte a documentação de recursos suportados para entender o escopo de recursos.

Para otimizar o processo de importação, automatize cf-terraforming usando um loop para processar múltiplos ZONE_ID valores de uma só vez.

Notas importantes

  • Nesse contexto de usar o Terraform, o objetivo principal é o armazenamento de backup, em vez de gerenciamento direto de recursos.
  • Se você tiver um grande número de recursos, o código gerado poderá se tornar extenso, dificultando a navegação e a manutenção.
  • Para manter o estado de Terraform gerenciável, considere estruturar recursos em módulos lógicos em vez de criar um único estado monolítico.
  • Recomendamos não modificar o código gerado automaticamente. Em vez disso, faça alterações no painel Cloudflare e reimporte os recursos conforme necessário.

Seguindo essa abordagem, você pode fazer backup com eficiência dos recursos do CloudFlare, mantendo um estado de Terraform claro e gerenciável.

fonte