Junior
O que é o Terraform?
sobes.tech IA
Resposta da IA
O Terraform é uma ferramenta de código aberto criada pela HashiCorp para gerir a infraestrutura como código (IaC). Permite descrever a infraestrutura usando uma linguagem declarativa HCL (HashiCorp Configuration Language) ou JSON, e depois implantá-la, modificá-la e removê-la automaticamente.
Características principais do Terraform:
- Declarativo: Descreve o estado desejado da infraestrutura, e o Terraform determina as ações necessárias para alcançá-lo.
- Imutável: O Terraform prefere criar recursos novos em vez de modificar os existentes em mudanças significativas de configuração, aumentando a fiabilidade e a previsibilidade.
- Provedores: Suporta uma grande quantidade de provedores de serviços cloud (AWS, Azure, GCP), bem como outros serviços (Kubernetes, Docker, bases de dados) através de um sistema de provedores.
- Estado: O Terraform rastreia o estado da infraestrutura implantada num ficheiro de estado, permitindo compreender o estado atual e calcular as mudanças necessárias.
- Módulos: Permite criar blocos de configuração reutilizáveis para organizar o código e simplificar a gestão de infraestruturas complexas.
- Planeamento: Antes de aplicar alterações, o Terraform mostra um plano de ações que será executado, ajudando a evitar consequências inesperadas.
O ciclo de vida típico do Terraform inclui as seguintes etapas:
- Inicialização (
terraform init) : Carregamento dos provedores e módulos necessários.terraform init // Inicializa o diretório de trabalho - Planeamento (
terraform plan) : Geração de um plano de execução que mostra quais recursos serão criados, modificados ou eliminados.terraform plan // Cria e mostra o plano de execução - Aplicação (
terraform apply) : Executa o plano para criar ou modificar a infraestrutura.terraform apply // Aplica o plano à infraestrutura alvo - Eliminação (
terraform destroy) : Elimina todos os recursos geridos pela configuração atual do Terraform.terraform destroy // Elimina todos os recursos geridos pelo estado atual do Terraform
Exemplo de uma descrição simples de um recurso em HCL:
resource "aws_instance" "example" {
# Tipo de recurso (instância AWS) e seu nome na configuração
ami = "ami-0abcdef1234567890" # ID da imagem AMI
instance_type = "t2.micro" # Tipo de instância
tags = {
# Etiquetas para o recurso
Name = "example-instance"
}
}
O Terraform simplifica e automatiza significativamente a gestão de infraestrutura, tornando-a mais previsível, escalável e versionável.