0 XP

Módulo 7

Terraform e Ansible

Clicar no console não escala nem se audita. Com Terraform você declara a infraestrutura, versiona no Git e aplica com revisão; com Ansible você configura o que roda dentro dos hosts de forma idempotente. Aqui você provisiona dev e staging idênticos, aprende state remoto com lock, módulos reutilizáveis e como identificar e resolver drift — a diferença entre o código e a realidade.

6 semanas3500 XPBadge: Infrastructure Mage

0/8 itens concluídos

O que você vai saber fazer

  • Escrever configuração Terraform com variáveis e outputs
  • Configurar backend remoto com lock e isolar ambientes
  • Criar e consumir módulos reutilizáveis
  • Detectar e resolver drift com plan e import
  • Configurar hosts com playbooks e roles idempotentes

Pré-requisitos

  • • Módulo 6 concluído

Tópicos

IaCProvidersResourcesVariablesOutputsStateModulesBackendsDriftPlaybooksRolesIdempotência

Entrega do módulo

Ambientes dev e staging provisionados por Terraform e host configurado por Ansible sem passos manuais.

Checklist

  • ☐ State em S3 com lock e versionamento habilitado
  • ☐ Ambientes separados por diretório ou workspace, com variáveis próprias
  • ☐ Módulo de rede reutilizado pelos dois ambientes
  • ☐ terraform plan limpo após apply (sem drift)
  • ☐ Playbook aplicado duas vezes com resultado 'changed=0' na segunda

Módulo bloqueado

Aprove o exame do módulo anterior para liberar este conteúdo.

Prática

Laboratórios do módulo

  • Terraform com state remoto e dois ambientes

    Avançado

    Provisionar dev e staging com o mesmo módulo e state em S3 com lock.

    Ver passo a passo
  • Provocar e resolver drift de Terraform

    Avançado

    Alterar um recurso pelo console, detectar a divergência e reconciliar.

    Ver passo a passo
  • Playbook Ansible idempotente para o host da API

    Intermediário

    Configurar o host inteiro por playbook, provando idempotência.

    Ver passo a passo

Troubleshooting típico

Quando quebra

Sintoma: terraform plan quer destruir um recurso que ninguém mexeu no código. Investigação: alguém alterou o recurso no console (drift) ou o provider mudou o valor padrão. Correção: comparar com terraform state show, ajustar o código para refletir a realidade desejada, ou importar/atualizar o state. Prevenção: proibir alteração manual e rodar plan em CI a cada PR.

No CloudShop

Descrever toda a infraestrutura do CloudShop em código e configurar o host com Ansible.

Perguntas de entrevista

  • Por que o state do Terraform precisa de lock?
  • Como você isolaria dev, staging e produção?
  • O que é idempotência e como o Ansible a garante?
Boss do módulo: Drift Terraform