Terraform — Uma pequena introdução

Update [21/03/2021]

Esse conteúdo está um pouco desatualizado. Se você quiser pode acessar uma nova versão aqui e uma explicação extra aqui.

Introdução

O significado da palavra “terraform” é basicamente modelar um planeta, lua ou qualquer outra estrela para que a atmosfera, temperatura, topografia ou ecologia desse lugar fique similar com o ambiente da Terra.

Terraform init

A sintaxe para utilizar o Digital Ocean é simples, como de qualquer outro provedor. O terraform se comunica via API com o D.O.(DigitalOcean). Para que isso aconteça corretamente, precisamos adicionar o nosso API token. Caso não tenha um basta criar aqui. Vamos agora criar nosso arquivo main.tf com o seguinte conteúdo.

provider “digitalocean” {
token = “GwkxhRgYNnrrn6nJN*JNwREGZPdhwftvNDwY”
version = “0.1”
}
figura 1 — terraform init

Terraform plan

Agora que já rodamos o init, podemos começar a escrever nosso código para criar o nosso primeiro droplet.

Figura 2 — main.tf
  • size = Tamanho da máquina, são pré definidas pela própria DO;
  • name = Esse campo é realmente o nome que daremos a máquina;
  • region = Onde essa máquina deverá rodar, no nosso caso no 3 servidor em New York;
  • ssh_keys = Você pode passar um array com os “ids” das suas chaves ssh cadastradas no DO, assim não precisa de senha para acessar por ssh.
Figura 3 — terraform plan

Terraform apply

Agora que sabemos exatamente o que nosso código vai alterar, podemos executá-lo e aguardar a criação do nosso droplet. Isso pode levar desde alguns segundos até poucos minutos, dependendo do tamanho da sua infraestrutura.

Figura 4 — terraform apply
Figura 5 — painel da digital ocean
ssh root@104.131.6.155
output “droplet_ip” {
value = “${digitalocean_droplet.web-app-01.ipv4_address}”
}
Figura 6 — output das variaveis

Arquivo de Estado

Se você prestar bastante atenção na pasta onde o nossos arquivos .tf estão, vai perceber que o terraform criou um arquivo chamado terraform.tfstate. Esse arquivo é muito importante na utilização do terraform, é nele que armazenamos o estado atual da nossa infraestrutura.

Figura 7 — terraform.tfstate

Terraform destroy

Vamos agora ver como podemos fazer para destruir nossa máquina, mas antes de destruirmos, precisamos verificar se realmente estamos destruindo apenas as máquinas que queremos e que não vamos fazer nenhuma besteira na nossa infra. Para isso basta executar o planejamento da nossa destruição.

Figura 8 — terraform plan -destroy
terraform destroy
Figura 9 — terreform destroy

Conclusão

Agora, você já tem o básico de como funciona o Terraform. Caso deseje utilizar um outro provider é só seguir a documentação que pode ser encontrada aqui.