Pular para conteúdo

Aula 12: Automação e IaC (Ansible e Terraform) ⚙️


🎯 Nossa Missão

  • Entender o conceito de Infraestrutura como Código (IaC).
  • Provisionamento vs Configuração.
  • Conhecer o Terraform (Estatura).
  • Conhecer o Ansible (Recheio).

😫 O Mundo Antes do IaC

  • Configuração manual de servidores via SSH.
  • "Qual era a senha mesmo?"
  • "Por que o servidor 1 está diferente do servidor 2?"
  • Impossível de escalar ou repetir com precisão.

🧠 O que é IaC?

Infraestrutura tratada como software. * Versionada no Git. * Testável. * Repetível (Idempotência). * Documentação viva do ambiente.


🏗️ Provisionar vs Configurar

Uma analogia com culinária: * Provisionar (Terraform): É comprar a cozinha, o fogão e as panelas. * Configurar (Ansible): É ligar o fogo, colocar os ingredientes e cozinhar.


🌍 Terraform: O Orquestrador de Nuvem

  • Focado em criar os recursos (VMs, Redes, Bancos).
  • Declarativo: Você diz "O que" quer, não "Como" fazer.
  • Multicloud: AWS, Azure, Google Cloud, DigitalOcean.

📄 Sintaxe HCL (Terraform)

resource "aws_instance" "web_server" {
  ami           = "ami-12345"
  instance_type = "t2.micro"
}
* Fácil de ler e gerenciar.


🔄 O Ciclo do Terraform

  1. Write: Escreve o arquivo .tf.
  2. Plan: Vê o que vai mudar antes de aplicar.
  3. Apply: Executa as mudanças na nuvem.
  4. Destroy: Remove tudo de uma vez.

🍳 Ansible: Automação Simples

  • Agentless: Não precisa instalar nada no servidor alvo (usa SSH).
  • Focado em instalar apps e configurar arquivos.
  • Usa Playbooks em YAML.

📜 Exemplo de Playbook (Ansible)

- name: Instalar Nginx
  hosts: servidores_web
  tasks:
    - name: Garantir que Nginx está instalado
      apt:
        name: nginx
        state: present

🔄 Idempotência: A Regra de Ouro

"Se eu rodar 10 vezes, o resultado final é o mesmo." * Se o software já está instalado, o Ansible não faz nada. * Garante consistência e evita duplicidade de erros.


🏗️ Estrutura de Infraestrutura Moderna

mermaid graph TD Code[Codigo no Git] --> Pipeline[GitHub Actions] Pipeline --> TF[Terraform: Cria VM] TF --> ANS[Ansible: Instala App] ANS --> App[Servidor pronto para uso]


🛡️ Benefícios da Automação

  • Velocidade: Criar 100 servidores em minutos.
  • Consistência: Todos os ambientes (Dev/Prod) são idênticos.
  • Disaster Recovery: Recriar tudo do zero após um erro grave.

🐚 O Papel do YAML e SSH

  • YAML: A língua franca da configuração.
  • SSH: A porta de entrada segura para a automação.

📈 Automação além da Infra

  • Backup de bancos de dados.
  • Limpeza de logs.
  • Atualização de patches de segurança de uma só vez.

💰 Cloud Computing e IaC

  • Pay-as-you-go: Pague só pelo que usa.
  • O IaC ajuda a desligar recursos que não estão sendo usados e economizar dinheiro!

🕵️‍♂️ Verificação de Conformidade

  • Ferramentas que verificam se a infraestrutura real é igual ao que está no código.
  • Evita o "Desvio de Configuração" (Config Drift).

🏆 Checklist de Automação Pro

  • Entende a diferença entre Terraform e Ansible.
  • Sabe que IaC deve estar no Git.
  • Entende o conceito de Idempotência.
  • Conhece o básico da sintaxe YAML.

📝 Prática de Hoje

  1. Escrever um Playbook Ansible fictício.
  2. Analisar um arquivo de configuração Terraform.
  3. Desenhar o fluxo de criação de um servidor.

🏁 Dúvidas?

A infraestrutura agora é código! 🚀⚙️