DEV Community

Cover image for Instalando o Terraform no Debian 12.0 “bookworm“
Luis Cruz
Luis Cruz

Posted on

Instalando o Terraform no Debian 12.0 “bookworm“

O Terraform é uma ferramenta de infraestrutura como código (IaC) desenvolvida pela HashiCorp. Ele permite aos desenvolvedores provisionar e gerenciar recursos de infraestrutura de forma automatizada e repetível, utilizando arquivos de configuração declarativa. Sua importância reside na capacidade de aumentar a eficiência, padronizar processos e promover a colaboração entre equipes de desenvolvimento e operações (DevOps), facilitando a criação e manutenção de ambientes de infraestrutura escaláveis e confiáveis.

Nessa série de artigos, irei mostrar formas de utilização, usando ambientes Cloud, e on-premise

Começando pela instalação do Terraform em um Debian 12.

Para mais informações, ou dúvidas consulte a documentação oficial.

Instalação

Certificar-se que o sistema está atualizado:

sudo apt-get update && sudo apt-get install -y gnupg software-properties-common
Enter fullscreen mode Exit fullscreen mode

Instalar a chave - HashiCorp GPG:

wget -O- https://apt.releases.hashicorp.com/gpg | \
gpg --dearmor | \
sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg
Enter fullscreen mode Exit fullscreen mode

Para verificar a impressão digital da chave:

gpg --no-default-keyring \
--keyring /usr/share/keyrings/hashicorp-archive-keyring.gpg \
--fingerprint
Enter fullscreen mode Exit fullscreen mode

gpgcomando reportará a impressão digital da chave:

/usr/share/keyrings/hashicorp-archive-keyring.gpg ------------------------------------------------- pub rsa4096 XXXX-XX-XX [SC] AAAA AAAA AAAA AAAA uid [ unknown] HashiCorp Security (HashiCorp Package Signing) <security+packaging@hashicorp.com> sub rsa4096 XXXX-XX-XX [E]

Enter fullscreen mode Exit fullscreen mode

Agora adicione o repositório oficial HashiCorp ao Debian. O lsb_release -cs comando encontra o codinome da versão de distribuição do seu sistema atual, como bustergroovyou sid.

echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] \
https://apt.releases.hashicorp.com $(lsb_release -cs) main" | \
sudo tee /etc/apt/sources.list.d/hashicorp.list
Enter fullscreen mode Exit fullscreen mode

Atualize, baixando as informações do pacote da HashiCorp.

 sudo apt update
Enter fullscreen mode Exit fullscreen mode

Instale o Terraform do novo repositório.

sudo apt-get install terraform
Enter fullscreen mode Exit fullscreen mode

Para verificar a instalação

 terraform -help
Enter fullscreen mode Exit fullscreen mode

ou use

terraform -version 
Enter fullscreen mode Exit fullscreen mode

Testando com Docker e Nginx

Com o Terraform configurado, podemos efetuar um teste, subindo uma aplicação em Docker e NGINX.

Crie um diretório, por exemplo: learn-terraform-docker-container

sudo mkdir learn-terraform-docker-container 
Enter fullscreen mode Exit fullscreen mode

Este diretório irá abrigar os arquivos de configuração usados para descrever a infraestrutura que você deseja que o Terraform crie e gerencie.

Quando você inicializa e aplica a configuração aqui, o Terraform usa este diretório para armazenar plug-ins, módulos (configurações pré-escritas) necessários e informações sobre a infraestrutura que ele criou.

Navegue até o diretório de trabalho.

cd learn-terraform-docker-container 
Enter fullscreen mode Exit fullscreen mode

Crie um arquivo chamado main.tf

nano main.tf 
Enter fullscreen mode Exit fullscreen mode

e cole a seguinte configuração nele.

terraform {
  required_providers {
    docker = {
      source  = "kreuzwerker/docker"
      version = "~> 3.0.1"
    }
  }
}

provider "docker" {}

resource "docker_image" "nginx" {
  name         = "nginx"
  keep_locally = false
}

resource "docker_container" "nginx" {
  image = docker_image.nginx.image_id
  name  = "tutorial"

  ports {
    internal = 80
    external = 8000
  }
}

Enter fullscreen mode Exit fullscreen mode

Inicialize o projeto, ele irá baixar um plugin chamado provedor que permite que o Terraform interaja com o Docker.

 terraform init
Enter fullscreen mode Exit fullscreen mode

terraform_init

Provisione o contêiner do servidor NGINX com arquivos apply.

 terraform apply
Enter fullscreen mode Exit fullscreen mode

terraform_apply

Quando o Terraform solicitar que você confirme, digite yes e pressione ENTER.

Verifique a existência do contêiner NGINX em localhost:8000 em seu navegador da web ou executando:

docker ps -a
Enter fullscreen mode Exit fullscreen mode

para ver o contêiner em execução.

nginx_localhost

Para destruir o contêiner, execute:

terraform destroy
Enter fullscreen mode Exit fullscreen mode

Quando o Terraform solicitar que você confirme, digite yes e pressione ENTER para destruir o contêiner.

Esses são os primeiros passos usando o Terraform.

See you later 🤘🏻

Top comments (0)