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
Instalar a chave - HashiCorp GPG:
wget -O- https://apt.releases.hashicorp.com/gpg | \
gpg --dearmor | \
sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg
Para verificar a impressão digital da chave:
gpg --no-default-keyring \
--keyring /usr/share/keyrings/hashicorp-archive-keyring.gpg \
--fingerprint
O gpg
comando 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]
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 buster
, groovy
ou 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
Atualize, baixando as informações do pacote da HashiCorp.
sudo apt update
Instale o Terraform do novo repositório.
sudo apt-get install terraform
Para verificar a instalação
terraform -help
ou use
terraform -version
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
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
Crie um arquivo chamado main.tf
nano main.tf
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
}
}
Inicialize o projeto, ele irá baixar um plugin chamado provedor que permite que o Terraform interaja com o Docker.
terraform init
Provisione o contêiner do servidor NGINX com arquivos apply.
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
para ver o contêiner em execução.
Para destruir o contêiner, execute:
terraform destroy
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.
Top comments (0)