Introdução
Boas-vindas ao mundo da Infraestrutura como Código (IaC).
Imagine que você é o chef de cozinha de um restaurante movimentado. Tradicionalmente, você poderia preparar cada refeição manualmente, seguindo cada etapa. No mundo de TI, isso equivale a configurar os servidores um por um — um processo lento e sujeito a erros.
Em vez de configurar a infraestrutura manualmente, repetindo comandos ou clicando no console da nuvem, a IaC permite descrever a infraestrutura em arquivos que podem ser versionados, revisados e reutilizados.
O Terraform é uma das ferramentas de IaC mais usadas. Ele é declarativo: você descreve o estado final desejado, e o Terraform determina como alcançá-lo.
Esse modelo declarativo é uma das ideias centrais do Terraform. Você descreve qual infraestrutura deve existir, sem precisar escrever o script imperativo completo de cada etapa de baixo nível necessária para criá-la.
Neste laboratório, você vai preparar sua “cozinha” e ensinar ao seu robô a primeira habilidade. Você aprenderá sobre Providers, que funcionam como as ferramentas específicas de cozinha de que o robô precisa para acessar diferentes ingredientes, como AWS, Google Cloud ou Docker.
Ao final deste laboratório, você terá instalado o Terraform, criado seu primeiro arquivo de “receita” e preparado o ambiente para começar a construir.
Instalar o Terraform
Precisamos instalar o programa terraform. Pense nisso como baixar o cérebro do robô. Faremos isso manualmente para que você veja claramente de onde o programa vem e onde ele é armazenado.
Primeiro, confirme em qual diretório você está trabalhando. Queremos estar dentro da pasta do projeto.
pwd
Em seguida, baixe o pacote do Terraform pela internet. Usaremos o comando wget para obter uma versão específica, a 1.14.3, e garantir que tudo funcione corretamente neste laboratório.
wget https://releases.hashicorp.com/terraform/1.14.3/terraform_1.14.3_linux_amd64.zip
O arquivo baixado é um arquivo compactado no formato “zip”, como uma mala que contém nossa ferramenta. Precisamos abri-lo usando o comando unzip.
unzip terraform_1.14.3_linux_amd64.zip
Agora temos o programa terraform, mas ele está preso neste diretório específico. Queremos poder executá-lo de qualquer lugar do sistema, assim como comandos comuns, como ls ou cd.
Para isso, mova o programa para o diretório especial do sistema /usr/local/bin. Esse diretório funciona como uma caixa de ferramentas pública que o sistema sempre verifica quando você digita um comando.
sudo mv terraform /usr/local/bin/
Por fim, confirme a instalação verificando a versão.
terraform -version
A saída deve indicar Terraform v1.14.3.
Remova o arquivo zip baixado para manter seu espaço de trabalho organizado:
rm terraform_1.14.3_linux_amd64.zip
Criar o blueprint
O Terraform precisa de um blueprint para saber o que deve construir. Esses blueprints são escritos em arquivos de texto com a extensão .tf.
Nesta etapa, você criará o arquivo principal de configuração. Por convenção, o arquivo principal geralmente recebe o nome main.tf. Pense nele como a página principal do seu livro de receitas.
Crie um novo arquivo chamado main.tf no diretório ~/project. Primeiro, você pode usar o comando touch para criar um arquivo vazio.
touch main.tf
Confirme que o arquivo foi criado:
ls -l main.tf
Neste momento, o arquivo está vazio. Na próxima etapa, adicionaremos conteúdo a ele. Esse arquivo servirá como o blueprint da sua infraestrutura.
Configurar um provider
Agora que temos o arquivo main.tf, precisamos adicionar instruções a ele.
O Terraform é uma ferramenta de uso geral. Por padrão, ele não sabe como se comunicar com Docker, AWS ou Azure. Precisamos apresentar um Provider, que funciona como um tradutor. Ele ensina ao Terraform a linguagem específica da plataforma que queremos gerenciar. Neste caso, queremos gerenciar contêineres do Docker, portanto precisamos do provider do Docker.
Essa separação entre o mecanismo principal e os plugins de providers permite que o mesmo fluxo de trabalho do Terraform gerencie muitos sistemas de infraestrutura diferentes.
Abra main.tf usando o editor de texto nano.
nano main.tf
Copie e cole o código a seguir no arquivo. A primeira parte, o bloco terraform, informa ao Terraform exatamente qual plugin tradutor deve ser baixado. A segunda parte, o bloco provider, ativa esse plugin.
terraform {
required_providers {
docker = {
source = "kreuzwerker/docker"
version = "~> 3.0.1"
}
}
}
provider "docker" {}
Depois de colar o código, salve as alterações e saia do editor. Pressione Ctrl + O para gravar o arquivo, pressione Enter para confirmar o nome do arquivo e, em seguida, pressione Ctrl + X para sair.
Essa configuração informa ao Terraform: “Pretendo usar o provider do Docker, especificamente a versão 3.0.1 ou uma versão compatível”.
Inicializar o projeto
Você instalou a ferramenta e escreveu o blueprint, mas o Terraform ainda não está totalmente pronto. Ele identificou no arquivo main.tf que você precisa do tradutor “Docker” (plugin), mas ainda não o baixou.
Precisamos executar o comando init. Pense nele como a etapa de “preparar a oficina”. O Terraform lerá seu blueprint, verificará quais ferramentas estão faltando e fará o download automático delas para um diretório oculto.
Por isso, terraform init é uma etapa de inicialização do projeto, não uma etapa de alteração da infraestrutura. Ele prepara o diretório de trabalho para que os comandos posteriores possam interpretar a configuração corretamente.
Execute o comando de inicialização:
terraform init
Você deve ver uma saída semelhante a esta:
Initializing the backend...
Initializing provider plugins...
- Finding kreuzwerker/docker versions matching "~> 3.0.1"...
- Installing kreuzwerker/docker v3.0.2...
- Installed kreuzwerker/docker v3.0.2 (self-signed, key ID 24E54F214539BC63)
Terraform has been successfully initialized!
Esse comando criou um diretório oculto chamado .terraform na pasta do projeto. É nesse diretório que o Terraform armazena os plugins de providers baixados.
Você pode confirmar que esse diretório existe listando todos os arquivos, inclusive os ocultos:
ls -a
Você deve ver .terraform e .terraform.lock.hcl. O arquivo de bloqueio garante que as próximas execuções usem exatamente as mesmas versões dos providers, mantendo a consistência.
Resumo
Parabéns! Você configurou corretamente o ambiente do Terraform.
Neste laboratório, você aprendeu:
- Instalação: como colocar o binário do Terraform no caminho do sistema (
/usr/local/bin). - Configuração: como criar um arquivo
main.tf, que serve como blueprint da sua infraestrutura. - Providers: “tradutores” específicos que permitem ao Terraform se comunicar com diferentes plataformas, como o Docker.
- Inicialização: como usar
terraform initpara baixar os plugins necessários antes de começar a trabalhar.
Agora você está pronto para começar a definir recursos reais e criar infraestrutura no próximo laboratório.



