No espaço de infraestrutura como código (IaC), uma das ferramentas mais úteis a surgir nos últimos anos é o Terraform Windows da HashiCorp. A capacidade de versionar a infraestrutura, automatizar o provisionamento de recursos e executar em diferentes provedores de nuvem é enorme para qualquer fluxo de trabalho de DevOps e automação.
Um caso de uso para o Terraform é em CI/CD. O Terraform permite que você:
Meus Vídeos Mais Recentes
- criar um ambiente de teste
- implantar uma aplicação
- executar testes de integração
- destruir o ambiente de teste
Todos os passos são executados automaticamente. E nenhum centro de dados é necessário!
Pré-requisitos
Este artigo é um passo a passo para instalar e executar o Terraform Windows. Se você deseja acompanhar, certifique-se de ter os seguintes pré-requisitos em vigor.
- A Windows 10 device
- Uma conta da AWS
- O AWS CLI instalado e configurado nesse dispositivo. Você pode aprender como instalá-lo aqui e como configurá-lo aqui.
- (Opcional) Visual Studio Code com a extensão do Terraform
Instalando o aplicativo Terraform Windows
Para aproveitar o poder do Terraform, primeiro você precisa instalá-lo no seu sistema operacional de escolha. Neste artigo, vou me concentrar 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 Modo Difícil
Se você não pode usar um gerenciador de pacotes ou quer entender como funciona o processo de instalação, você pode instalar o Terraform manualmente. Você pode instalar o Terraform baixando o binário e adicionando-o ao caminho do sistema variável de ambiente. Se isso parecer intimidante, eu lhe asseguro 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 64 bits do Windows.
- Crie uma pasta no seu C:\ drive 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 seu 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 está escrito 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 no final da lista. Deve parecer 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 pronto.
Do Jeito Fácil
Ufa, foi muito trabalho! Seria terrível ter que fazer isso toda vez que você precisasse instalar um 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 torna a instalação, remoção e atualização de software tão simples quanto um comando de uma linha, e o Terraform não é exceção a isso.
Para instalar o Terraform com o Chocolatey, siga estas etapas:
- Abra um prompt de comando/PowerShell como administrador e instale o Chocolatey usando o comando da página de instalação deles.
- Depois que isso estiver completo, execute
choco install terraform
. Se preferir, você também pode colocar-y
no final para concordar automaticamente em instalá-lo no seu dispositivo.
Após a execução desse comando, você obterá algo assim:
3. Verifique se a instalação foi bem-sucedida digitando terraform --version
.
O caminho do 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, e ainda é. Mas uma das características no Windows 10 é o Subsistema Windows para Linux, ou WSL. Isso permite que você execute comandos Linux no Windows.
- Instale o WSL. Eu não vou entrar em detalhes sobre como instalar e configurar o WSL aqui, mas se você quiser seguir adiante e ainda não o tiver configurado. Um snip do TechSnips que eu fiz sobre este tópico pode ser encontrado abaixo.
2. No seu shell WSL, execute apt-get install unzip
Você precisará disso para extrair os binários do Terraform mais tarde.
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 adapta ao seu dispositivo. Você pode encontrar a lista completa de versões 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 estiver descompactado, você precisará movê-lo para algum lugar acessível pelo caminho do sistema. Felizmente, o Linux tem 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á definida no caminho do sistema.
6. Verifique se a instalação foi bem-sucedida executando terraform --version
.
Automatizando uma Instância EC2 do Terraform da AWS
Agora que você instalou o Terraform, pode começar a usá-lo. Neste post, vou demonstrar a construção de uma instância EC2 simples do Terraform da AWS. 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 EC2 do Terraform. É importante ter um diretório separado para cada ambiente. No momento em que estou escrevendo isso, o Terraform não tem 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
. - Uma vez que você tenha um diretório, precisará de um script Terraform. Abaixo está um exemplo que você pode usar. Este é um script Terraform típico usando o provedor AWS provider para criar uma instância AWS resource.
Se você quiser o script completo, copie abaixo. Se desejar 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.
Compreensão dos Scripts do TF
Antes de prosseguir, observe o bloco abaixo e o que ele está declarando.
# Terraform HCL
Este bloco informa ao Terraform EC2 qual provedor usar. Existem provedores para todos os principais fornecedores de nuvem, bem como alguns fornecedores locais. Se você for mais avançado e souber como escrever em Golang, também pode criar seu próprio provedor.
Este bloco informa ao Terraform para usar o provedor AWS e as chaves de acesso no arquivo ~/.aws/credentials
sob o nome do perfil default
. Este arquivo é criado quando você configura a AWS CLI com o comando aws config
, conforme indicado nos pré-requisitos.
Vale ressaltar que ~/
é uma abreviação para o diretório do usuário atual. Se você vem do ambiente Windows, isso é equivalente a $env:USERPROFILE
ou %USERPROFILE%
. No entanto, o Terraform não suporta essa notação no momento da redação.
O próximo bloco abaixo descreve uma Instância EC2 do Terraform e como construí-la. Se você der uma olhada na documentação do Terraform para aws_instance, poderá ver que alguns parâmetros são obrigatórios; 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
do seu diretório de trabalho. Isso baixará todas as dependências e provedor para uma pasta chamada .terraform
. Se tudo correr bem, você deve obter algo assim:
Antes de fazer quaisquer alterações, o Terraform EC2 permite ver o que será criado executando terraform plan
. Aqui está o que isso irá produzir:
# aws_instance.ubuntu será criado
Construindo a Instância EC2 do AWS: Criando
Agora você está pronto para executá-lo por conta própria, executando terraform apply
. Abaixo você verá a saída como terraform plan
, mas com um prompt adicionado para confirmar se você realmente deseja aplicar essas alterações.
Uma vez que você digite ‘sim’, o Terraform EC2 começará a provisionar a instância do Terraform EC2 chamando as APIs da AWS com a chave de acesso no seu arquivo de credenciais. Isso pode levar algum tempo. Uma vez concluído, você verá algo como abaixo:
Destruindo a Instância AWS EC2
Quando terminar com o ambiente de teste, você pode destruir a instância.
No seu console cmd/PowerShell, digite terraform destroy
. Como o comando apply
, você verá uma lista de recursos que o Terraform vai destruir e depois um prompt antes de realmente destruí-los.
Uma vez que você digite sim, o Terraform EC2 começará a destruir a instância e confirmará quando terminar.