This commit is contained in:
Waloshi6
2026-02-08 14:34:23 +01:00
parent ac8addb65a
commit 7377c00a47
15 changed files with 229 additions and 168 deletions

View File

@@ -54,7 +54,12 @@ Versionning spécifique des images Docker
#🚀 TP DevOps Windows - Stack Complète Locale (Corrigé & Optimisé)
#📋 PRÉ-REQUIS WINDOWS - Installation Pas à Pas
Avant tout, bien penser à ACTIVER la fonction de VIRTUALISATION dans le BIOS du systeme de votre pc
#🔧 1. Préparation du système (PowerShell Administrateur)
# Ouvrir PowerShell en tant qu'ADMINISTRATEUR (clic droit → Exécuter en tant qu'administrateur)
@@ -71,6 +76,7 @@ wsl --set-default-version 2
# 4. Redémarrer l'ordinateur (OBLIGATOIRE)
Restart-Computer
#📥 2. Installation des outils (après redémarrage)
# 1. Installer Chocolatey (package manager Windows)
@@ -80,6 +86,7 @@ iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocola
# 2. Installer tous les outils
choco install -y git docker-desktop vscode kubernetes-cli minikube terraform helm postman
#🐧 3. Configuration WSL2 et Ubuntu
# Vérifier l'installation WSL
@@ -98,7 +105,10 @@ sudo apt install -y python3 python3-pip python3-venv nodejs npm curl wget
echo "alias k=kubectl" >> ~/.bashrc
source ~/.bashrc
exit # Retour à PowerShell
#🐋 ÉTAPE 1 : CONFIGURATION DOCKER DESKTOP
#⚙️ Configuration manuelle obligatoire :
Ouvrir Docker Desktop après installation
@@ -142,7 +152,10 @@ docker run hello-world
# Vérifier l'intégration WSL2
wsl -d Ubuntu-22.04 -e docker version
# Doit fonctionner sans erreur
#📁 ÉTAPE 2 : STRUCTURE DU PROJET OPTIMISÉE
#🗂️ Création de la structure :
# Créer le dossier principal
@@ -177,9 +190,14 @@ C:\DevOpsProject\
├── .github\workflows\ # CI/CD
├── config\ # Fichiers de config
└── docs\ # Documentation
#🐍 ÉTAPE 3 : APPLICATION PYTHON CORRIGÉE
#3.1 Fichier : src\app\requirements.txt
# commentaire de Oualim : Ce fichier installera les dépendances dans le conteneur, pas sur votre machine
fastapi==0.104.1
uvicorn[standard]==0.24.0
pydantic==2.5.0
@@ -187,6 +205,7 @@ prometheus-client==0.19.0
python-dotenv==1.0.0
pytest==7.4.3
httpx==0.25.1
#3.2 Fichier : src\app\main.py (CORRIGÉ)
from fastapi import FastAPI, Request, Response, HTTPException
@@ -399,7 +418,11 @@ USER devopsuser
# Commande de démarrage
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000", "--no-access-log"]
#🐳 ÉTAPE 4 : DOCKER COMPOSE CORRIGÉ
#4.1 Fichier : docker\docker-compose.yml (RECOMMENCÉ)
version: '3.8'
@@ -521,6 +544,7 @@ volumes:
name: portainer-data
app-logs:
name: app-logs
#4.2 Fichier : docker\prometheus.yml (À CRÉER)
global:
@@ -564,6 +588,7 @@ scrape_configs:
# alertmanagers:
# - static_configs:
# - targets: []
#4.3 Exécution Docker Compose :
# Se placer dans le dossier docker
@@ -582,7 +607,10 @@ docker-compose logs app
curl http://localhost:8000
# ou dans PowerShell
Invoke-WebRequest -Uri "http://localhost:8000" -UseBasicParsing
#☸️ ÉTAPE 5 : KUBERNETES SIMPLIFIÉ POUR WINDOWS
#5.1 Activer Kubernetes dans Docker Desktop :
1. Docker Desktop → Settings (roue crantée)
@@ -590,6 +618,7 @@ Invoke-WebRequest -Uri "http://localhost:8000" -UseBasicParsing
3. ✅ Enable Kubernetes
4. ✅ Show system containers (optional)
5. Apply & Restart (patienter 2-3 minutes)
#5.2 Vérification :
# Vérifier que Kubernetes fonctionne
@@ -601,6 +630,7 @@ kubectl get nodes
kubectl get pods --all-namespaces
# Doit montrer les pods système
#5.3 Fichier : kubernetes\manifests\namespace.yaml
apiVersion: v1
@@ -610,6 +640,7 @@ metadata:
labels:
name: devops-demo
environment: development
#5.4 Fichier : kubernetes\manifests\configmap.yaml (NOUVEAU)
apiVersion: v1
@@ -622,6 +653,7 @@ data:
APP_NAME: "devops-windows-app"
LOG_LEVEL: "INFO"
PYTHONUNBUFFERED: "1"
#5.5 Fichier : kubernetes\manifests\deployment.yaml (SIMPLIFIÉ)
apiVersion: apps/v1
@@ -695,6 +727,7 @@ spec:
protocol: TCP
name: http
type: NodePort # CORRIGÉ : NodePort au lieu de LoadBalancer pour Windows
#5.6 Déploiement Kubernetes :
# 1. Build l'image Docker avec un tag spécifique
@@ -718,7 +751,10 @@ kubectl get svc -n devops-demo devops-app-service -o jsonpath='{.spec.ports[0].n
# 5. Accéder à l'application
# http://localhost:[PORT] (ex: http://localhost:30456)
#🏗️ ÉTAPE 6 : TERRAFORM SIMPLIFIÉ (OPTIONNEL)
#⚠️ IMPORTANT : Terraform + Docker sur Windows/WSL2 est complexe.
#Je recommande de SAUTER cette étape pour les débutants.
Si vous voulez quand même essayer :
@@ -838,6 +874,7 @@ output "application_url" {
output "namespace" {
value = kubernetes_namespace.devops.metadata[0].name
}
#6.2 Utilisation Terraform :
cd C:\DevOpsProject\terraform
@@ -853,7 +890,10 @@ terraform apply
# Pour détruire
terraform destroy
#📦 ÉTAPE 7 : HELM SIMPLE POUR WINDOWS
#7.1 Création d'un chart Helm simple :
cd C:\DevOpsProject\kubernetes\helm
@@ -910,6 +950,7 @@ app:
monitoring:
enabled: true
prometheusScrape: true
#7.4 Fichier : kubernetes\helm\devops-chart\templates\deployment.yaml
apiVersion: apps/v1
@@ -956,6 +997,7 @@ spec:
port: {{ .Values.app.service.targetPort }}
initialDelaySeconds: 10
periodSeconds: 15
#7.5 Installation avec Helm :
cd C:\DevOpsProject\kubernetes\helm
@@ -971,7 +1013,10 @@ helm upgrade devops-release ./devops-chart -n devops-demo
# Désinstaller
helm uninstall devops-release -n devops-demo
#🔄 ÉTAPE 8 : GITHUB ACTIONS CORRIGÉ
#8.1 Fichier : .github\workflows\ci-cd.yml (PRATIQUE)
name: CI/CD DevOps Windows
@@ -1070,7 +1115,10 @@ jobs:
echo "kubectl apply -f kubernetes/manifests/"
echo "ou"
echo "helm upgrade --install ..."
#📊 ÉTAPE 9 : MONITORING FONCTIONNEL
#9.1 Dashboard Grafana prêt à l'emploi :
# Créer un dossier pour les dashboards Grafana
@@ -1102,6 +1150,7 @@ mkdir C:\DevOpsProject\docker\grafana-dashboards
}
}
'@ | Out-File -FilePath "C:\DevOpsProject\docker\grafana-dashboards\dashboard.json" -Encoding UTF8
#9.2 Accès aux interfaces :
✅ Après docker-compose up -d :
@@ -1117,7 +1166,10 @@ mkdir C:\DevOpsProject\docker\grafana-dashboards
1. Application K8s : http://localhost:[NODE_PORT]
(trouvez le port avec : kubectl get svc -n devops-demo)
#🛠️ ÉTAPE 10 : SCRIPTS PRATIQUES
#10.1 Script : scripts\setup.ps1 (AMÉLIORÉ)
# DevOps Windows Setup Script
@@ -1386,7 +1438,10 @@ Write-Host "✅ Toutes les ressources ont été nettoyées" -ForegroundColor Gre
Write-Host ""
Write-Host "Pour recommencer :" -ForegroundColor Cyan
Write-Host " .\setup.ps1" -ForegroundColor Gray
#🎯 VALIDATION FINALE
#Testez votre installation :
# 1. Lancer le setup
@@ -1444,7 +1499,7 @@ Votre stack DevOps Windows est maintenant fonctionnelle et prête à l'emploi !
# Commentaire de Oualim
# Avant d'aller plus loin, les partie 6,7 et 8 n'étant pas encore abordée à cette étape, en lançant uniquement les commandes de la partie 4.3 on se retrouvera avec des containeurs orphelins :
# Avant d'aller plus loin, les #6, #7 et #8 n'étant pas encore abordée à cette étape, en lançant uniquement les commandes de le #3 on se retrouvera avec des containeurs orphelins :
PS C:\DevOpsProject\docker> docker-compose ps
"....Found orphan containers ([gitea logstash kibana filebeat elasticsearch devops-db])...."