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)
* Fácil de ler e gerenciar.🔄 O Ciclo do Terraform
- Write: Escreve o arquivo
.tf. - Plan: Vê o que vai mudar antes de aplicar.
- Apply: Executa as mudanças na nuvem.
- 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
- Escrever um Playbook Ansible fictício.
- Analisar um arquivo de configuração Terraform.
- Desenhar o fluxo de criação de um servidor.
🏁 Dúvidas?
A infraestrutura agora é código! 🚀⚙️