0Pricing
DevOps Bootcamp · Aula

IaC com Terraform e GitHub Actions

Entenda como integrar o Terraform aos fluxos de trabalho do GitHub Actions para provisionar e gerenciar a infraestrutura.

IaC com Terraform e GitHub Actions é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de DevOps Bootcamp, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de DevOps Bootcamp inclui 4 aulas no total.

Infraestrutura como código (IaC)

Boas-vindas! Nesta lição, vamos explorar a Infraestrutura como código (IaC). Essa abordagem consiste em gerenciar e provisionar sua infraestrutura, como servidores, bancos de dados e redes, usando código em vez de processos manuais.

Pense nisso como escrever software para sua infraestrutura. Isso traz muitos benefícios, incluindo consistência, repetibilidade e controle de versão para toda a sua configuração.

Conheça o Terraform para IaC

Uma das ferramentas mais populares para IaC é o Terraform, uma ferramenta de código aberto desenvolvida pela HashiCorp.

O Terraform permite definir seus recursos de infraestrutura em arquivos de configuração legíveis por pessoas. Em seguida, ele usa esses arquivos para provisionar e gerenciar recursos em vários provedores de nuvem, como AWS, Azure e GCP, além de outros serviços.

Sintaxe HCL do Terraform

O Terraform usa sua própria linguagem declarativa, chamada Linguagem de configuração da HashiCorp (HCL). A HCL foi projetada para ser fácil de ler e escrever, tornando claras as definições da sua infraestrutura.

Aqui está um pequeno exemplo de HCL que define uma VPC da AWS (nuvem privada virtual):

resource "aws_vpc" "main" {
  cidr_block = "10.0.0.0/16"
  tags = {
    Name = "my-vpc"
  }
}

O fluxo de trabalho principal do Terraform

O Terraform segue um fluxo de trabalho consistente de três etapas para gerenciar sua infraestrutura:

  • terraform init: inicializa seu diretório de trabalho e baixa os plug-ins necessários do provedor.
  • terraform plan: gera um plano de execução que mostra quais alterações o Terraform fará na sua infraestrutura.
  • terraform apply: executa as alterações descritas no plano, provisionando ou modificando seus recursos.

Automatizando com GitHub Actions

Integrar o Terraform ao GitHub Actions potencializa sua estratégia de IaC. Isso permite automatizar etapas importantes do processo de implantação da sua infraestrutura.

Com o GitHub Actions, você pode:

  • Executar automaticamente o terraform plan a cada solicitação de alteração.
  • Garantir que as alterações na infraestrutura sejam analisadas e aprovadas.
  • Automatizar o terraform apply para implantações controladas.

Arquivo de fluxo de trabalho do Terraform

Um fluxo de trabalho do GitHub Actions para o Terraform é definido em um arquivo YAML dentro do diretório .github/workflows/ do seu repositório. Esse arquivo especifica quando o fluxo de trabalho é executado e quais etapas ele realiza.

Aqui está uma estrutura básica para um fluxo de trabalho que poderia planejar alterações:

name: 'Terraform CI'
on: 
  pull_request:
    branches:
      - main
jobs:
  terraform:
    name: 'Terraform'
    runs-on: ubuntu-latest
    steps:
      # Your workflow steps will go here

Configuração do Terraform e etapa de inicialização

Antes de executar qualquer comando do Terraform, seu fluxo de trabalho precisa obter seu código, configurar a CLI do Terraform e inicializar o diretório de trabalho.

A ação hashicorp/setup-terraform facilita esse processo:

- name: Checkout Code
  uses: actions/checkout@v4

- name: Setup Terraform
  uses: hashicorp/setup-terraform@v2
  with:
    terraform_version: 1.5.x

- name: Terraform Init
  run: terraform init

A etapa de planejamento do Terraform

O comando terraform plan é uma etapa fundamental em qualquer fluxo de trabalho de IaC. Ele realiza uma “simulação” para determinar quais ações são necessárias a fim de alcançar o estado desejado definido nos seus arquivos de configuração.

Essa etapa permite analisar as alterações propostas antes que qualquer coisa seja realmente modificada no seu ambiente de nuvem.

- name: Terraform Plan
  run: terraform plan
  env:
    AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
    AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}

Verificação rápida: plano do Terraform

Entender os comandos principais é essencial para usar o Terraform com eficiência nos seus fluxos de trabalho automatizados.

Considerações sobre a aplicação com Terraform

O comando terraform apply é onde as mudanças reais acontecem: ele faz alterações efetivas na sua infraestrutura.

Em processos automatizados, é uma prática comum acionar o terraform apply somente após a análise humana da saída do plan ou apenas ao incorporar alterações a ramificações específicas, por exemplo, main ou production. Isso evita alterações acidentais ou não aprovadas na infraestrutura.

Recapitulação de IaC com Terraform e Actions

Nesta lição, exploramos como a Infraestrutura como código (IaC) ajuda a gerenciar a infraestrutura usando código. Concentramos-nos no Terraform como a principal ferramenta para IaC, aprendendo sobre sua sintaxe HCL e o fluxo de trabalho essencial de inicialização, planejamento e aplicação.

Você também viu como o GitHub Actions pode automatizar as etapas terraform init e terraform plan, tornando suas implantações de infraestrutura mais seguras, consistentes e totalmente integradas aos seus processos de CI/CD.

Perguntas Frequentes

A aula “IaC com Terraform e GitHub Actions” é grátis?

Sim — o texto completo de “IaC com Terraform e GitHub Actions” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de DevOps Bootcamp, atualize para CoddyKit PRO. O curso de DevOps Bootcamp inclui 4 aulas no total.

O que vou aprender em “IaC com Terraform e GitHub Actions”?

Entenda como integrar o Terraform aos fluxos de trabalho do GitHub Actions para provisionar e gerenciar a infraestrutura. Você pratica DevOps Bootcamp com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar DevOps Bootcamp?

Nenhuma experiência prévia é necessária. DevOps Bootcamp no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “IaC com Terraform e GitHub Actions”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de DevOps Bootcamp?

Sim. Cada aula de DevOps Bootcamp inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. IaC com Terraform e GitHub Actions
  2. Gerenciamento de recursos de nuvem
  3. Automação de atualizações da infraestrutura
  4. Gerenciando o estado do Terraform e back-ends remotos
← Voltar para DevOps Bootcamp