Infrastructure HomeLab complètement automatisée utilisant les principes Infrastructure as Code (IaC) avec GitLab CI/CD, Terraform, Ansible et Kubernetes.
- ✅ Reproductibilité : Infrastructure versionnable et déployable
- ✅ Automatisation : Déploiements via pipelines CI/CD
- ✅ Scalabilité : Architecture modulaire et extensible
- ✅ Monitoring : Observabilité complète avec Prometheus
- Ubuntu Server 24.04 LTS
- GitLab.com account + Runner configuré
- Variables CI/CD configurées (
SSH_PRIVATE_KEY,TF_VAR_server_ip)
git clone https://gitlab.com/dev1338/iac.git
cd iac
git push origin main # Déclenche le pipeline
# Approuver manuellement apply_dev dans GitLab UI📖 Guide complet : docs/getting-started/quick-start.md
┌─────────────────┐ ┌───────────────┐ ┌─────────────────┐
│ Developer │───▶│ GitLab CI/CD │───▶│ Ubuntu Server │
│ (VS 2022) │ │ Pipeline │ │ (K3s + Apps) │
└─────────────────┘ └───────────────┘ └─────────────────┘
- IaC : Terraform (infrastructure) + Ansible (configuration)
- Orchestration : Kubernetes (K3s) + Helm
- CI/CD : GitLab Pipelines + Self-hosted Runner
- Monitoring : Prometheus + métriques automatiques
📖 Architecture détaillée : docs/architecture/README.md
| Guide | Description | Audience |
|---|---|---|
| 🏁 Getting Started | Déploiement rapide | Tous |
| 🏗️ Architecture | Vue d'ensemble technique | DevOps |
| 📖 Guides | Documentation par composant | Technique |
| ⚙️ Operations | Maintenance et monitoring | Ops |
| 🔧 Troubleshooting | Résolution problèmes | Support |
📖 Documentation complète : docs/README.md
- Modules : Variables centralisées, configurations par environnement
- Environments : Dev (192.168.1.63) + Prod (192.168.1.64)
- State : Management local avec sauvegardes
- Inventaires : Générés dynamiquement par Terraform
- Playbooks : Configuration services et applications
- Rôles : Composants réutilisables
- Cluster : K3s single-node avec extensions
- Namespaces :
automation,databases,cache,monitoring - Storage : Classes multiples (SSD, standard, backup)
- Security : RBAC + Network Policies
- Métriques : Infrastructure + Kubernetes + Applications
- Alerting : Règles prédéfinies + notifications
- Storage : Rétention adaptée par environnement
Stages:
validate: # Validation syntaxique (auto)
plan: # Planification Terraform (auto)
apply: # Déploiement infrastructure (manuel)
kubernetes: # Setup K8s + Prometheus (auto)
deploy: # Applications Ansible (manuel)
sync: # Synchronisation GitHub (auto)
cleanup: # Nettoyage ressources (manuel)📖 Pipeline détaillé : docs/guides/gitlab-ci/README.md
- Infrastructure Terraform (dev/prod)
- Pipeline GitLab CI/CD complet
- Cluster Kubernetes K3s
- Namespaces avec quotas et sécurité
- Monitoring Prometheus de base
- Scripts automatisés (installation, validation, déploiement)
- Documentation complète (cette tâche)
- Charts Helm personnalisés
- Playbooks Ansible avancés
- Grafana + dashboards
- AlertManager + notifications
- Applications de démonstration
- Tests automatisés d'intégration
- Fork le projet ou créer une branche feature
- Développer avec les standards du projet
- Tester via pipeline CI/CD
- Merge Request vers main avec review
- Code : HCL formaté, YAML valide, scripts bash lintés
- Documentation : Mise à jour systématique
- Tests : Validation pipeline obligatoire
- Sécurité : Pas de secrets en dur
📖 Guide détaillé : docs/contributing/README.md
- 📖 Documentation : docs/
- 🐛 Issues : GitLab Issues
- 💬 Discussions : GitLab Discussions
- 📊 Monitoring : Prometheus (port-forward depuis K3s)
- Équipe Infrastructure : Via GitLab Issues
- Urgences : SSH direct vers serveurs + logs
- Améliorations : Merge Requests bienvenues
# Clone + Configuration
git clone https://gitlab.com/dev1338/iac.git && cd iac
# Déploiement automatique
git push origin main
# → Suivre pipeline GitLab
# → Approuver apply_dev manuellement
# → Infrastructure prête en 15 min
# Accès services
ssh ubuntu@192.168.1.63
sudo k3s kubectl get all -A
sudo k3s kubectl port-forward -n monitoring svc/prometheus 9090:9090🎯 Next: Documentation Complète | Quick Start
Dernière mise à jour : {{ current_date }} | Version : v3.2.0