DevForge

DevOps

Cultura, práticas e ferramentas que unificam desenvolvimento e operações. Automação, CI/CD, containers, orquestração, monitoramento e infraestrutura como código.

🐳 Docker ☸️ Kubernetes 🏗️ Terraform ⚙️ Ansible 🔄 GitHub Actions 📊 Prometheus 📈 Grafana 🔍 ELK Stack

⚡ Instalação automatizada - DevOps Tools

Linux / WSL (Ubuntu/Debian)
curl -fsSL https://rafaelferreira2312.github.io/devforge/scripts/devops/install-devops.sh | bash
Windows PowerShell (Admin)
Set-ExecutionPolicy Bypass -Scope Process; iex "& { $(irm https://rafaelferreira2312.github.io/devforge/scripts/devops/install-devops.ps1) }"
macOS (Homebrew)
curl -fsSL https://rafaelferreira2312.github.io/devforge/scripts/devops/install-devops.sh | bash

Instala: Docker, Docker Compose, kubectl, Helm, Terraform, Ansible, AWS CLI, kubectx, stern, jq, yq, GitHub CLI, helm-diff, k9s, kind, minikube, Lens CLI

Docker & Docker Compose

🐳 Docker básico

docker run -d -p 80:80 --name nginx nginx:alpine
docker ps -a
docker logs -f nginx

📦 Docker Compose (multi-container)

docker-compose up -d
docker-compose down -v
docker-compose logs -f

Kubernetes (k8s)

🎯 kubectl comandos essenciais

kubectl get pods -n default
kubectl apply -f deployment.yaml
kubectl logs -f pod-name
kubectl exec -it pod-name -- /bin/bash

🔄 Minikube / Kind (local cluster)

minikube start --cpus=4 --memory=8192
kind create cluster --name devops
helm install nginx bitnami/nginx

Terraform (IaC)

terraform init
terraform plan -out=tfplan
terraform apply tfplan
terraform destroy -auto-approve

Ansible (Config Management)

ansible all -i inventory.ini -m ping
ansible-playbook -i inventory.ini playbook.yml
ansible-galaxy install geerlingguy.nginx

CI/CD - GitHub Actions

Exemplo de workflow .github/workflows/deploy.yml

name: Deploy to Kubernetes on: push: branches: [ main ] jobs: build-and-deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Build Docker image run: docker build -t myapp:${{ github.sha }} . - name: Push to registry run: docker push myregistry/myapp:${{ github.sha }} - name: Deploy to K8s run: kubectl set image deployment/myapp myapp=myregistry/myapp:${{ github.sha }}

Monitoramento - Prometheus + Grafana

📊 Prometheus

docker run -d -p 9090:9090 prom/prometheus
up{job="node"}

📈 Grafana

docker run -d -p 3000:3000 grafana/grafana
Dashboard ID: 1860 (Node Exporter Full)

🔧 Troubleshooting DevOps

❌ Erro: "docker: permission denied"

Causa: Usuário não está no grupo docker.
Solução: sudo usermod -aG docker $USER && newgrp docker

⚠️ Erro: "context deadline exceeded" no kubectl

Causa: Cluster Kubernetes não respondendo ou kubeconfig inválido.
Solução: Verifique kubectl cluster-info e kubectl config view

🐘 Terraform: "state lock" error

Causa: Backend remoto com lock ativo.
Solução: terraform force-unlock LOCK_ID

Diagnóstico automático DevOps:

docker version && kubectl version --client && terraform version && ansible --version && helm version && echo "---" && docker ps

Este comando verifica versões das principais ferramentas DevOps e containers em execução.

⚠️ IMPORTANTE - Como executar os scripts corretamente

Os scripts abaixo funcionam em Windows, Linux e macOS. Siga as instruções específicas do seu sistema:

WINDOWS (PowerShell)
# ERRO COMUM: "arquivo não assinado" ou "execução de scripts desabilitada" # SOLUÇÃO 1: Executar com bypass (recomendado) powershell -ExecutionPolicy Bypass -File "C:\caminho\script.ps1" # SOLUÇÃO 2: Baixar e executar direto (pode ter erro de codificação) powershell -ExecutionPolicy Bypass -Command "iex (irm https://.../script.ps1)" # SOLUÇÃO 3: Habilitar execução permanentemente (como Administrador) Set-ExecutionPolicy RemoteSigned -Scope CurrentUser # Se houver erros de acentuação (caracteres estranhos): O script ainda funciona, apenas a saída visual pode ficar distorcida
LINUX / WSL (Bash)
# ERRO COMUM: "permission denied" ou "comando não encontrado" # SOLUÇÃO 1: Dar permissão de execução (obrigatório) chmod +x script.sh # SOLUÇÃO 2: Executar o script ./script.sh # SOLUÇÃO 3: Executar via curl (baixar e executar direto) curl -fsSL https://.../script.sh | bash # SOLUÇÃO 4: Se der erro de permissão, use sudo (cuidado!) sudo chmod +x script.sh && sudo ./script.sh # Se houver erros de permissão: Execute 'ls -la script.sh' para verificar permissões atuais
macOS (Terminal / Zsh)
# ERRO COMUM: "permission denied" ou "operation not permitted" # SOLUÇÃO 1: Dar permissão de execução chmod +x script.sh # SOLUÇÃO 2: Executar o script ./script.sh # SOLUÇÃO 3: Se der erro de "quarentena" (arquivo baixado da internet) xattr -d com.apple.quarantine script.sh # SOLUÇÃO 4: Executar via curl curl -fsSL https://.../script.sh | bash # Se erro persistir: Vá em Preferências do Sistema → Segurança e Privacidade → Permitir execução

Dicas importantes:
Windows: Se aparecerem caracteres estranhos (ex: "�" ou "ção"), ignore - o script funciona normalmente. Para evitar, baixe o script localmente e execute.
Linux/macOS: Sempre use chmod +x antes de executar scripts baixados.
WSL (Windows): Siga as instruções do Linux, mas certifique-se de que o script está dentro do sistema de arquivos do Linux (não no /mnt/c/).

📜 Scripts prontos

Scripts verificados no Ubuntu 22.04/24.04, Debian 12, macOS 13+ e Windows 10/11 com WSL2.

❓ Perguntas frequentes - DevOps

Qual a diferença entre Docker e Kubernetes?

Docker gerencia containers individuais. Kubernetes orquestra múltiplos containers em cluster, gerenciando escalabilidade, alta disponibilidade e rollouts.

Terraform vs Ansible: quando usar cada um?

Terraform é para provisionamento de infraestrutura (criar VMs, redes). Ansible é para configuração (instalar pacotes, configurar serviços). Eles se complementam!

Como testar Kubernetes localmente?

Use Minikube (VM), Kind (Docker-based) ou K3s (leve). O script de instalação do DevForge inclui todas essas opções.

Melhor stack de monitoramento para DevOps?

Prometheus (métricas) + Grafana (visualização) + Loki (logs) + Tempo (traces) = LGTM Stack, recomendada pela Grafana Labs.