Skip to main content

Terraform

Conceitos do terraform

O que é terraform ?

Terraform is an infrastructure as code tool that lets you build, change, and version infrastructure safely and efficiently. This includes low-level components like compute instances, storage, and networking; and high-level components like DNS entries and SaaS features.

O que é IaC ?

Infrastructure as Code (Infraestrutura como Código) é a prática de gerenciar e provisionar servidores, redes e bancos de dados por meio de arquivos de configuração, em vez de realizar configurações manuais.

Comandos terraform

terraform -help

O comando acima ajuda a entender para que serve cada opção de comando.

main.tf

Arquivo de configuração principal do terraform

terraform init

O comando acima inicializa o backend, instala plugins necessários para conversar com os providers e deixa o terraform pronto para ser usado no diretório atual (workspace).

gcloud config set project <NOME-DO-PROJETO>
terraform validate

O comando acima valida se a sintaxe nos arquivos de configuração estão corretas.

terraform show

O comando acima mostra o arquivo de estado do terraform (terraform.tfstate)

terraform refresh

O comando acima atualiza o arquivo de estado (terraform.tfstate) com a infra existente no mundo real (cloud provider).

terraform import

O comando acima deixa você importar recursos de infraestrutura existentes para que você possa gerenciá-los com o Terraform.

terraform plan

O comando acima mostra o planejamento das mudanças que o terraform deve fazer para casar com a configuração desejada.

terraform apply

O comando acima cria as mudanças planejadas em toda a infraestrutura no mundo real (cloud provider)

terraform destroy

O comando acima remove toda a infraestrutura do mundo real (cloud provider) que é gerenciada pelo terraform (terraform.tfstate)

variables.tf

Declaração de variáveis (podendo atribuir valores ou não)

terraform.tfvars

Atribuição de valores nas variáveis já declaradas (em variables.tf) outputs.tf Configuração para dados de saída

terraform output

O comando acima retorna os dados de saída

gcloud auth login
gcloud config set project PROJECT-ID
gcloud config list project

Backend remoto

Backend remoto é o arquivo de estado (terraform.tfstate) do terraform configurado para ser armazenado em um local centralizado e remoto como por exemplo um bucket em um provedor cloud ou até no próprio terraform cloud.

Com o backend remoto os membros da equipe podem trabalhar colaborativamente e ter uma unica fonte da verdade.

O backend remoto também pode ser utilizado em uma ferramenta de pipeline CI/CD