Terraform: lista de atalhos — comandos e exemplos úteis

A lista de todos os comandos do Terraform

Conteúdo da página

Aqui está um resumo de Terraform abrangente, com comandos essenciais, elementos de configuração, gerenciamento de recursos, módulos, variáveis, tratamento de estado e melhores práticas.

O Terraform é uma ferramenta de código de infraestrutura (IaC) de código aberto desenvolvida pela HashiCorp, que permite aos usuários definir e provisionar infraestrutura em vários provedores de nuvem (por exemplo, AWS, Azure, GCP) usando arquivos de configuração declarativos. Seu objetivo principal é automatizar o provisionamento de infraestrutura, garantir consistência e reduzir erros manuais. O Terraform suporta fluxos de trabalho multicloud, modulares e orientados a estado, tornando-se uma pedra angular das práticas modernas de DevOps.

Para mais ferramentas e fluxos de trabalho de desenvolvimento, consulte Ferramentas de Desenvolvedor: O Guia Completo para Fluxos de Trabalho Modernos de Desenvolvimento.

estudante usando terraform

Principais Benefícios do Terraform:

  • Sintaxe Declarativa: Defina os estados de infraestrutura desejados no código.
  • Agnosticismo de Provedor: Funciona com AWS, Azure, GCP, Kubernetes e muito mais.
  • Gerenciamento de Estado: Rastreia alterações de infraestrutura para evitar conflitos.

Guia de Instalação e Configuração

https://developer.hashicorp.com/terraform/tutorials#get-started

O processo de instalação do Terraform é bastante simples.

  • Linux (Ubuntu/Debian):

    wget -O - https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(grep -oP '(?<=UBUNTU_CODENAME=).*' /etc/os-release || lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
    sudo apt update && sudo apt install terraform
    
  • Windows (WSL):

    wget -O terraform.zip https://releases.hashicorp.com/terraform/1.5.5/terraform_1.5.5_windows_amd64.zip
    unzip terraform.zip
    
  • macOS (Homebrew):

    brew install terraform
    

Para produtividade no terminal ao trabalhar com Terraform, consulte Atalhos de Teclado Ubuntu: Folhas de Referência Completas.

Verificação

terraform --version

Comandos da CLI do Terraform

Aqui está a lista de todos os comandos do Terraform:

Comando Descrição
terraform init Inicializa um diretório de configuração de Terraform novo ou existente
terraform validate Verifica se a configuração é válida
terraform plan Mostra o plano de execução sem fazer alterações
terraform apply Aplica as alterações necessárias para alcançar o estado desejado
terraform destroy Destrói a infraestrutura gerenciada pelo Terraform
terraform fmt Reformata arquivos de configuração no estilo padrão
terraform show Mostra o estado ou plano atual
terraform refresh Atualiza o estado com a infraestrutura real
terraform providers Exibe os provedores usados na configuração
terraform graph Visualiza dependências de recursos como um grafo
terraform workspace list Lista todos os espaços de trabalho disponíveis
terraform workspace new Cria um novo espaço de trabalho
terraform workspace select Alterna para um espaço de trabalho especificado
terraform workspace show Mostra o nome do espaço de trabalho atual
terraform workspace delete Exclui um espaço de trabalho especificado
terraform output Mostra os valores de saída do arquivo de estado
terraform import Importa recurso existente para o Terraform
terraform taint Marca um recurso para recriação na próxima aplicação
terraform untaint Remove a marca de recurso contaminado
terraform state list Lista recursos no arquivo de estado
terraform state show Mostra atributos de um único recurso no estado

Essenciais de Configuração

Extensões de Arquivo

  • .tf: Arquivos de configuração principais (sintaxe HCL)
  • .tfvars: Valores de variáveis

Tipos de Bloco Terraform

  • Exemplo de Provedor
    provider "aws" {
      region = "us-east-1"
    }
    
  • Exemplo de Recurso
    resource "aws_instance" "web" {
      ami           = "ami-0abcdef"
      instance_type = "t2.micro"
    }
    
  • Exemplo de Variável
    variable "instance_count" {
      type    = number
      default = 2
    }
    
  • Exemplo de Saída
    output "instance_ip" {
      value = aws_instance.web.public_ip
    }
    
  • Exemplo de Módulo
    module "vpc" {
      source = "./modules/vpc"
      cidr_block = var.vpc_cidr
    }
    

Trabalhando com Variáveis

  • Declaração de variáveis
    variable "region" {
      description = "Região AWS"
      default     = "us-east-1"
    }
    
  • Atribuição de valores
    • CLI: terraform apply -var="region=us-west-2"
    • Arquivo tfvars: terraform apply -var-file="prod.tfvars"
  • Tipos: string, number, bool, list, map, object

Gerenciando Estado

  • Arquivo de estado: terraform.tfstate
  • Estado remoto (Exemplo S3)
    backend "s3" {
      bucket = "my-tf-state"
      key    = "state.tfstate"
      region = "us-east-1"
    }
    
  • Visualizar estado:
    terraform show
    terraform state list

Laços e Condicionais

  • Count
    resource "aws_instance" "web" {
      count = 3
      ...
    }
    
  • For_each
    resource "aws_s3_bucket" "b" {
      for_each = var.bucket_names
      bucket   = each.value
    }
    
  • Condicionais
    instance_type = var.env == "prod" ? "t2.large" : "t2.micro"
    

Funções

  • Interpolação de strings:
    resource "aws_s3_bucket" "example" { bucket = "my-bucket-${var.env}" }
  • Exemplos de Listas e Mapas:
    locals {
      my_map = { a = 1, b = 2 }
    }
    

Provisioners

Usados para inicializar recursos. Exemplo:

resource "aws_instance" "web" {
  ...
  provisioner "local-exec" {
    command = "echo Instance created"
  }
}

Melhores Práticas

  • Controle de versão de todos os arquivos .tf
  • Bloquear versões de provedores para garantir implantações consistentes
  • Backend remoto para gerenciamento de estado (S3, Azure Blob, etc.)
  • Criptografar arquivos de estado em backends remotos
  • Modularizar a infraestrutura usando módulos reutilizáveis
  • Documentar suas configurações
  • Testar em staging antes da produção

Referências Adicionais

  • Ajuda: terraform --help ou [command] --help para ajuda específica do comando
  • Depuração: Defina TF_LOG=INFO ou TF_LOG=DEBUG para logs verbosos
  • Formatação: terraform fmt
  • Codificação: Para operações de codificação/decodificação Base64, consulte Codificação - Decodificação Base64 no Windows, Linux e Mac

Esta folha de referência fornece uma referência de acesso rápido aos aspectos mais comuns e avançados do uso do Terraform - desde comandos até melhores práticas - tornando-a prática tanto para iniciantes quanto para usuários avançados. Tenha um ótimo dia!

Assinar

Receba novos artigos sobre sistemas, infraestrutura e engenharia de IA.