Skip to main content

Instalação

# Linux
curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install terraform

terraform version

Comandos

terraform init      # Inicializar
terraform plan      # Visualizar
terraform apply     # Aplicar
terraform destroy   # Destruir
terraform validate  # Validar
terraform fmt       # Formatar

Estrutura

# providers.tf
provider "aws" {
  region = "us-east-1"
}

# main.tf
resource "aws_instance" "web" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t3.micro"
  
  tags = {
    Name = "web-server"
  }
}

# variables.tf
variable "instance_type" {
  type    = string
  default = "t3.micro"
}

# outputs.tf
output "instance_ip" {
  value = aws_instance.web.public_ip
}

State

terraform {
  backend "s3" {
    bucket         = "my-terraform-state"
    key            = "prod/terraform.tfstate"
    region         = "us-east-1"
    encrypt        = true
    dynamodb_table = "terraform-locks"
  }
}

Modules

module "vpc" {
  source  = "./modules/networking"
  cidr_block = "10.0.0.0/16"
}

Workspaces

terraform workspace list
terraform workspace new prod
terraform workspace select prod