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.
⚡ Instalação automatizada - DevOps Tools
curl -fsSL https://rafaelferreira2312.github.io/devforge/scripts/devops/install-devops.sh | bashSet-ExecutionPolicy Bypass -Scope Process; iex "& { $(irm https://rafaelferreira2312.github.io/devforge/scripts/devops/install-devops.ps1) }"curl -fsSL https://rafaelferreira2312.github.io/devforge/scripts/devops/install-devops.sh | bashInstala: 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:alpinedocker ps -adocker logs -f nginx📦 Docker Compose (multi-container)
docker-compose up -ddocker-compose down -vdocker-compose logs -fKubernetes (k8s)
🎯 kubectl comandos essenciais
kubectl get pods -n defaultkubectl apply -f deployment.yamlkubectl logs -f pod-namekubectl exec -it pod-name -- /bin/bash🔄 Minikube / Kind (local cluster)
minikube start --cpus=4 --memory=8192kind create cluster --name devopshelm install nginx bitnami/nginxTerraform (IaC)
terraform initterraform plan -out=tfplanterraform apply tfplanterraform destroy -auto-approveAnsible (Config Management)
ansible all -i inventory.ini -m pingansible-playbook -i inventory.ini playbook.ymlansible-galaxy install geerlingguy.nginxCI/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/prometheusup{job="node"}📈 Grafana
docker run -d -p 3000:3000 grafana/grafanaDashboard 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:
# 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
# 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
# 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.