Terraform é uma ferramenta de Infrastructure as Code (IaC) desenvolvida pela HashiCorp que permite provisionar e gerenciar infraestrutura (servidores, redes, bancos de dados, etc.) através de arquivos de configuração declarativos.

Em vez de criar recursos manualmente no console da cloud ou executar scripts imperativos, você descreve o estado desejado da infraestrutura e o Terraform descobre como chegar lá.

Como funciona

O ciclo básico do Terraform é:

  1. terraform init: inicializa o diretório e baixa os providers
  2. terraform plan: mostra o que será criado, alterado ou destruído
  3. terraform apply: aplica as mudanças
  4. terraform destroy: destrói os recursos gerenciados

Arquivos principais

ArquivoPropósito
main.tfConfiguração principal (resources, providers)
variables.tfDeclaração de variáveis
outputs.tfSaídas expostas após o apply
terraform.tfvarsValores das variáveis
terraform.tfstateEstado atual da infraestrutura

HCL (HashiCorp Configuration Language)

As configurações são escritas em HCL, uma linguagem declarativa e legível:

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }
}

Detalhes em: terraform-providers terraform-resources terraform-state terraform-variaveis terraform-local terraform-cloud-aws terraform-cloud-azure terraform-cloud-gcp