No espaço de infraestrutura como código (IaC), uma das ferramentas mais úteis que surgiram nos últimos anos é o Terraform da HashiCorp para Windows. A capacidade de versionar infraestrutura, automatizar o provisionamento de recursos e executar em diferentes fornecedores de nuvem é enorme para qualquer fluxo de trabalho de DevOps e automação.
Um caso de uso para o Terraform está em CI/CD. O Terraform permite que você:
Meus Últimos Vídeos
- crie um ambiente de teste
- implante uma aplicação
- execute testes de integração
- destrua o ambiente de teste
Todos os passos são realizados automaticamente também. E nenhum data center é necessário!
Pré-requisitos
Este artigo é um guia para colocar o Terraform para Windows em funcionamento. Se você deseja seguir adiante, por favor, certifique-se de ter os seguintes pré-requisitos no lugar.
- A Windows 10 device
- Uma conta AWS
- O CLI da AWS instalado e configurado nesse dispositivo. Você pode aprender como instalar aqui e como configurar aqui.
- (Opcional) Visual Studio Code com a extensão do Terraform
Instalando o Aplicativo Terraform para Windows
Para aproveitar o poder do Terraform, você primeiro precisa instalá-lo no seu sistema operacional de escolha. Neste artigo, vou focar no Windows. Mas saiba que o Terraform pode ser executado em outros sistemas operacionais. Se você não estiver no Windows, dê uma olhada na documentação de instalação.
O Jeito Difícil
Se você não pode usar um gerenciador de pacotes ou deseja entender como funciona o processo de instalação, pode instalar o Terraform manualmente. Você pode instalar o Terraform baixando o binário e adicionando-o ao variável de ambiente do sistema. Se isso parecer intimidante, eu garanto que há uma maneira mais fácil de fazer isso que você aprenderá na próxima seção.
- Baixe a versão apropriada do Terraform na página de download da HashiCorp. No meu caso, é a versão de 64 bits para Windows.
- Crie uma pasta na unidade C:\ onde você pode colocar o executável do Terraform. Eu prefiro colocar instaladores em uma subpasta (por exemplo, C:\tools) onde você pode colocar binários.
- Depois que o download terminar, vá encontrá-lo no Explorador de Arquivos. Extraia o arquivo zip para a pasta que você criou no passo 2.
- Abra o Menu Iniciar e digite “ambiente” e a primeira coisa que aparecer deve ser a opção Editar as Variáveis de Ambiente do Sistema. Clique nisso e você deve ver esta janela.

5. Clique em Variáveis de Ambiente… na parte inferior e você verá isso:

6. Na seção inferior onde diz Variáveis do Sistema, encontre uma chamada Caminho e clique em editar. Você verá uma lista de onde encontrar os binários que o Windows pode precisar por qualquer motivo.
7. Clique em Novo e adicione o caminho da pasta onde está localizado o terraform.exe ao final da lista. Deve ficar assim quando terminar.

8. Clique em OK em cada um dos menus que você abriu até não haver mais nenhum.
9. Para garantir que o Windows detecte o novo caminho, abra um novo prompt de CMD/PowerShell e digite refreshenv
.
10. Verifique se a instalação foi bem-sucedida digitando terraform --version
. Se retornar uma versão, está tudo certo.
O Jeito Fácil
Ufa, foi muito trabalho! Seria terrível ter que fazer isso toda vez que você precisasse instalar novo software no seu dispositivo. Vamos usar um gerenciador de pacotes em vez disso. Existem alguns gerenciadores de pacotes que você pode usar para instalar o Terraform no Windows. Para o Windows, meu favorito é o Chocolatey. Ele facilita a instalação, remoção e atualização de software com um comando de uma linha, e o Terraform não é exceção a isso.
Para instalar o Terraform com o Chocolatey, siga as seguintes etapas:
- Abra um prompt de CMD/PowerShell como administrador e instale o Chocolatey usando o comando da página de instalação deles.
- Assim que isso estiver concluído, execute
choco install terraform
. Se desejar, você também pode adicionar-y
no final para concordar automaticamente com a instalação no seu dispositivo.
Após a execução desse comando, você verá algo assim:
3. Verifique se a instalação foi bem-sucedida inserindo terraform --version
.
O Modo Linux
I can almost hear what you’re thinking. Wait a minute Chris, didn’t you say this was going to cover installing Terraform on Windows?
Sim, ainda é possível. Mas uma das características no Windows 10 é o Subsistema Windows para Linux, ou WSL. Isso permite que você execute comandos do Linux no Windows.
- Instale o WSL. Não vou entrar em detalhes sobre como instalar e configurar o WSL aqui, mas se quiser acompanhar e ainda não o tiver configurado. Um trecho TechSnips que fiz sobre esse tópico pode ser encontrado abaixo.
2. No seu shell do WSL, execute apt-get install unzip
. Você precisará disso para extrair os binários do Terraform posteriormente.
3. Baixe o Terraform executando wget https://releases.hashicorp.com/terraform/0.12.6/terraform_0.12.6_linux_amd64.zip
. Lembre-se de substituir a versão e a arquitetura pela que melhor se adequa ao seu dispositivo. Você pode encontrar a lista completa de lançamentos do Terraform aqui.
4. Execute unzip terraform_0.12.6_linux_amd64.zip terraform
para descompactar o conteúdo do arquivo zip em uma pasta chamada terraform.
5. Uma vez que o arquivo ZIP esteja descompactado, você precisará movê-lo para algum lugar acessível pelo caminho do sistema. Felizmente, o Linux possui uma pasta na qual os usuários podem adicionar binários por padrão. Mova o binário do Terraform para lá executando mv terraform /usr/local/bin/
. A pasta /usr/local/bin já está configurada no caminho do seu sistema.
6. Verifique se a instalação foi bem-sucedida executando terraform --version
.
Automatizando uma Instância EC2 do Terraform AWS
Agora que você instalou o Terraform, pode começar a usá-lo. Neste post, vou demonstrar como construir uma instância EC2 do Terraform AWS simples. Mas saiba que o Terraform pode provisionar centenas de tipos diferentes de infraestrutura.
Para começar, você primeiro precisa de um diretório para executar os scripts do Terraform EC2. É importante ter um diretório separado para cada ambiente. No momento em que estou escrevendo isso, o Terraform não possui uma maneira de filtrar o que ele executa. Ele executará todos os scripts no seu diretório de trabalho atual.
Configurando um Script TF
- No seu console cmd ou PowerShell executado como administrador, execute
mkdir hello-terraform
e depoiscd ./hello-terraform
. - Assim que você tiver um diretório, precisará de um script Terraform. Abaixo está um exemplo de um que você pode usar. Este é um script Terraform típico usando o fornecedor AWS para criar uma instância AWS recurso.
Se você quiser o script inteiro, copie-o abaixo. Se você quer entender o que este script está fazendo, continue lendo abaixo.
# Terraform HCL
3. Salve o script acima como main.tf
no seu diretório de trabalho.
Entendendo os Scripts TF
Antes de prosseguir, observe o bloco abaixo e o que ele está declarando.
#Terraform HCL
Este bloco indica ao Terraform EC2 qual fornecedor usar. Existem fornecedores para todos os principais fornecedores de nuvem, bem como alguns fornecedores locais. Se você for mais avançado e souber como escrever Golang, também pode escrever seu próprio fornecedor.
Este bloco indica ao Terraform para usar o fornecedor AWS e as chaves de acesso no arquivo ~/.aws/credentials
sob o nome de perfil default
. Este arquivo é criado quando você configura o AWS CLI com o comando aws config
, conforme mencionado nos pré-requisitos.
Também vale a pena notar que ~/
é a abreviação para o diretório do usuário atual. Se você vem de um ambiente Windows, isso é equivalente a $env:USERPROFILE
ou %USERPROFILE%
. Mas o Terraform não suporta essa notação no momento da escrita.
O bloco a seguir descreve uma instância EC2 Terraform e como construí-la. Se você consultar a documentação Terraform para aws_instance, verá que alguns parâmetros são obrigatórios e outros são opcionais. Neste caso, os parâmetros obrigatórios são o ID da AMI (ami-07d0cf3af28718ef8
) para o Ubuntu 18.04 LTS e t2.micro
para o tipo de instância.
Ao passar um bloco de tag com a chave Name
e o valor HelloTerraform
, essa tag também será atribuída à instância que será criada. Isso é opcional.
# Terraform HCL
Agora que o script está configurado, chame-o executando terraform init
no seu diretório de trabalho. Isso baixará todas as dependências e provedores para uma pasta chamada .terraform
. Se tudo correr bem, você deverá ver algo assim:
Antes de fazer alterações, o Terraform EC2 permite que você veja o que será criado executando terraform plan
. Aqui está o que será exibido:
# aws_instance.ubuntu será criado
Construindo a Instância EC2 da AWS: Criando
Agora você está pronto para executá-lo por conta própria, executando terraform apply
. Abaixo, você verá uma saída semelhante ao terraform plan
, mas com um prompt adicional para confirmar que você realmente deseja aplicar essas alterações.
Assim que você digitar ‘sim’, o Terraform EC2 começará a provisionar a instância do Terraform EC2 chamando as APIs da AWS com a chave de acesso em seu arquivo de credenciais. Isso pode levar algum tempo. Uma vez concluído, você verá algo como abaixo:
Destruindo a Instância AWS EC2
Uma vez que você tenha terminado com o ambiente de teste, você pode destruir a instância.
No seu console cmd/PowerShell, digite terraform destroy
. Assim como o comando apply
, você verá uma lista de recursos que o Terraform vai destruir e depois um prompt antes de realmente destruí-los.
Assim que você digitar sim, o Terraform EC2 começará a destruir a instância e confirmará quando terminar.