Terraform: lista de atalhos — comandos e exemplos úteis
A lista de todos os comandos do Terraform
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.

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"
- CLI:
- 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 --helpou[command] --helppara ajuda específica do comando - Depuração: Defina
TF_LOG=INFOouTF_LOG=DEBUGpara 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!
Links Úteis
- https://developer.hashicorp.com/terraform
- Folha de Referência Docker
- Folha de Referência Docker Compose - Comandos mais úteis com exemplos
- Folha de Referência Kubernetes
- Implantar projeto Flutter com backend na AWS Amplify
- Implantar site gerado pelo Hugo na AWS S3
- Desempenho AWS Lambda: JavaScript vs Python vs Golang
- Lambdas em Camadas com AWS SAM e Python
- AWS SAM + AWS SQS + Python PowerTools
- Minio como alternativa ao Aws S3. Visão geral e instalação do Minio