Conhecendo o Terraform (IAC – Infrastructure As Code)
IAC Terraform o que é
Você conhece ou já ouviu falar sobre o IAC Terraform?
O significado de IAC Terraform é, basicamente, modelar um planeta, lua, ou qualquer outra estrela, para que a atmosfera, temperatura, topografia ou ecologia desse lugar fique similar ao ambiente da Terra.
Terraform é uma ferramenta open source de provisionamento de infraestrutura, criada pela Hashicorp em Golang.
É uma ferramenta de código aberto, que possibilita a criação de uma infraestrutura ou serviço como código (IAC – Infrastructure as Code) de forma segura e eficiente, utilizando o HCL – Hashicorp Configuration Language. Ela é muito parecida com JSON, sendo uma mistura de linguagens de Ruby e YAML, dividida em blocos.
Formato e criação de um arquivo Infrastructure As Code Terraform
O formato do arquivo que o Terraform espera é “.tf” , além do arquivo “.tfstate”. Diferente de outras ferramentas de IaC, não é preciso se preocupar com a estrutura de pastas. O que é diferente de não organizar seu código, já que o Terraform vai compilar todos os arquivos .tf do diretório atual e suas sub pastas, antes de executá-lo.
Para iniciarmos a criação de um arquivo .tf, precisamos identificar o provedor a ser utilizado. Ou seja, em qual fornecedor de cloud será realizado o deploy da infraestrutura.
Um provedor é responsável por entender as interações da API e expor recursos. A maioria dos provedores configura uma plataforma de infraestrutura específica (nuvem pública ou privada).
Os provedores também podem oferecer utilitários locais para tarefas, como, por exemplo, gerar números aleatórios para nomes de recursos exclusivos.
A coisa mais importante que você configura com o IAC Terraform são os recursos, sendo de baixo nível, como um servidor físico, máquina virtual ou contêiner, ou de nível superior, como um provedor de e-mail, registro DNS ou provedor de banco de dados.
Comandos básicos do IAC Terraform
Para utilizarmos o IAC Terraform no dia a dia, é importante conhecermos os seus comandos básicos. A seguir, vamos listar quais são eles:
- Terraform init: Inicializa o ambiente com o provedor utilizado. Responsável por fazer o download dos plugins e demais arquivos necessários para a correta execução;
- Terraform plan: Faz a leitura dos arquivos TF, testa as configurações, e monta o plano de execução do Terraform;
- Terraform apply: Executa a “criação” dos recursos (instâncias/objetos) no provider indicado nos arquivos TF;
- Terraform show: Mostra informações dos recursos criados e um status da infraestrutura Terraform;
- Terraform output: Mostra o valor de uma determinada variável, facilitando a identificação da informação desejada. Ex: “public_ip”;
- Terraform destroy: Executa a “remoção” dos recursos (instâncias/objetos) no provider indicado nos arquivos TF.
Conclusão do Terraform (Hashicorp)
Por fim, o Terraform permite criar, alterar e destruir recursos em nuvem pública ou privada, utilizando uma linguagem de configuração de alto nível. Dessa maneira, essa ferramenta pode tornar a sua vida muito mais tranquila.
Gostou de aprender um pouquinho mais sobre IAC Terraform?
Confira mais conteúdos como esse em nosso Blog!
Quer ser nosso próximo Tech Writer? Confira nossas vagas!
Referências bibliográficas:
HASHICORP, Terraform Documentation. (2021): ttps://www.terraform.io/
LINUXTIPS, Conheça o Terraform | Semana DevOps #3. (2019, Agosto 21): https://www.youtube.com/watch?v=lrAycU7_XnQ
LINUXTIPS, Lucas Souza – Terraform além do básico. (2020, Abril 11): https://www.youtube.com/watch?v=P3aY4_vxzWQ
BROCK, Will. What is Terraform? | Terraform Tutorial. (2020, Junho 14): https://www.youtube.com/watch?v=vwn77cUarTs&list=PL8HowI-L-3_9bkocmR3JahQ4Y-Pbqs2Nt