🎯 Philosophy DevOps
Tout est automatisé et versionné : déploiements, configurations, backups. Infrastructure as Code (IaC) avec Ansible pour reproductibilité et disaster recovery rapide.
🔧 Ansible Semaphore
Interface web pour orchestrer les playbooks Ansible sans ligne de commande :
- Playbooks organisés : Par projet (backup, deploy, config)
- Inventaires : Serveurs et groupes centralisés
- Schedules : Exécutions planifiées (cron-like)
- Historique : Logs de toutes les exécutions
- Variables : Gestion des secrets (Vault)
- Notifications : Alertes Slack/Discord/Email
Playbooks principaux
# Déploiement complet homelab
- deploy-docker-stack.yml
# Configuration système
- configure-system.yml
- install-monitoring.yml
# Backups automatisés
- backup-gitea.yml
- backup-semaphore.yml
- sync-to-nas.yml
# Mises à jour
- update-all-systems.yml
- update-docker-containers.yml
📦 Gitea - Git Self-hosted
Hébergement Git privé pour tous les scripts, playbooks et configurations :
- Repos : Scripts backup, docker-compose, configs
- Issues : Suivi des tâches et bugs
- Webhooks : Déclenchement Semaphore automatique
- CI/CD : Gitea Actions (GitHub Actions compatible)
- Wiki : Documentation technique
- Releases : Versioning des scripts
Repositories clés
- 📁 ansible-playbooks - Tous les playbooks Ansible
- 📁 docker-compose - Stacks Docker de prod
- 📁 backup-scripts - Scripts de sauvegarde
- 📁 monitoring-configs - Grafana, Prometheus configs
- �� homelab-docs - Documentation interne
🚀 Workflows d'Automation
Backup quotidien (2h du matin)
1. Semaphore exécute backup-gitea.yml
2. Gitea → dump SQL + volumes Docker
3. Semaphore exécute backup-semaphore.yml
4. MySQL dump + volumes data
5. Semaphore exécute sync-to-nas.yml
6. rsync → TrueNAS
7. Notification Discord : ✅ Backup OK
Déploiement nouveau service
1. Créer docker-compose.yml dans Gitea
2. Push vers repo
3. Webhook → Semaphore
4. Playbook deploy-service.yml exécuté
5. docker-compose up -d sur serveur cible
6. Ajout reverse proxy NPM automatique
7. Tests de santé
8. Notification : 🚀 Service déployé
Mises à jour hebdomadaires (dimanche 3h)
1. apt update && upgrade sur toutes les VMs
2. Watchtower → MAJ conteneurs Docker
3. Snapshots Proxmox avant reboot
4. Redémarrage si kernel update
5. Vérification services post-reboot
6. Rapport envoyé par email
📜 Scripts Bash
Scripts personnalisés pour tâches spécifiques :
- health-check.sh : Vérification santé services
- cleanup-docker.sh : Nettoyage images/volumes
- ssl-renew.sh : Renouvellement certificats SSL
- log-rotate.sh : Rotation logs applicatifs
- disk-alert.sh : Alertes si espace < 10%
- restore-from-backup.sh : Restauration rapide
🔄 CI/CD Pipeline
Intégration et déploiement continu avec Gitea Actions :
# .gitea/workflows/deploy.yml
name: Deploy to Production
on: [push]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Deploy via Ansible
run: ansible-playbook deploy.yml
- name: Health Check
run: curl https://service.ruelle.fr/health
📊 Monitoring de l'Automation
- Logs Semaphore → Graylog pour analyse
- Métriques exécution playbooks → Prometheus
- Dashboard Grafana "Automation Overview"
- Alertes si backup échoué > 24h
- Uptime Kuma monitoring des cron jobs