From b0b50a3bbfd5f3b1d86604d53a2259769a8ae04a Mon Sep 17 00:00:00 2001 From: Grizouille Date: Sat, 7 Feb 2026 08:19:04 +0000 Subject: [PATCH] Actualiser TpDevOpsProject.md --- TpDevOpsProject.md | 190 ++++++++++++++++++++++----------------------- 1 file changed, 94 insertions(+), 96 deletions(-) diff --git a/TpDevOpsProject.md b/TpDevOpsProject.md index 1a6b608..152efe8 100644 --- a/TpDevOpsProject.md +++ b/TpDevOpsProject.md @@ -1,155 +1,149 @@ -#TP DevOps Corrigé par DeepSeek +# TP DevOps -# ...et en cours de restructuration par Oualim (commentaires pour le futur pour tester une autre création à l'IA d'un tp, en tenant compte des manquements et des erreurs pour ne pas laisser l'IA les reproduire) +...et en cours de restructuration par Oualim (commentaires pour le futur pour tester une autre création à l'IA d'un tp, en tenant compte des manquements et des erreurs pour ne pas laisser l'IA les reproduire) Original pourrit: https://cloud.bonisco.fr/s/Cb2bFdLXeFEFcLm -# Commentaire de Oualim (Celui de Deepseek est juste un peu moins pourri mais c'était aussi de la merde) -# Ce TP contient encore beaucoup de fautes sur les manips et fichiers et aucun sens sur la structure car l'IA a juste pris les mots clefs de "devops" sur internet, copié des fichiers et mélangé des concepts sans aucune présentation ni introduction ou explications (ex : correctif de l'ancien tp tout en bas :-/ ; terraform sur des docker ??? ; kub en faisant un doublon d'appli potentiellement conflictuel, aucune explication ni structure d'étape pour comprendre les logiques de docker et k8') +> Commentaire de Oualim (Celui de Deepseek est juste un peu moins pourri mais c'était aussi de la merde) +> Ce TP contient encore beaucoup de fautes sur les manips et fichiers et aucun sens sur la structure car l'IA a juste pris les mots clefs de "devops" sur internet, copié des fichiers et mélangé des concepts sans aucune présentation ni introduction ou explications (ex : correctif de l'ancien tp tout en bas :-/ ; terraform sur des docker ??? ; kub en faisant un doublon d'appli potentiellement conflictuel, aucune explication ni structure d'étape pour comprendre les logiques de docker et k8') + #📚 RÉCAPITULATIF DES CORRECTIONS APPORTÉES -#✅ Corrections majeures : -Python : Ajout de Response dans les imports FastAPI -Docker Compose : Chemins corrigés, versions spécifiées - -Kubernetes : Changé LoadBalancer → NodePort pour Windows - -Image Docker : Tag :local au lieu de :latest pour K8s - -Terraform : Suppression du provider Docker problématique - -Scripts : Ajout de gestion d'erreurs robuste - -Tests : Ajout de tests unitaires Python - -Health checks : Ajout dans Docker Compose et K8s +## ✅ Corrections majeures : +* Python : Ajout de Response dans les imports FastAPI +* Docker Compose : Chemins corrigés, versions spécifiées +* Kubernetes : Changé LoadBalancer → NodePort pour Windows +* Image Docker : Tag :local au lieu de :latest pour K8s +* Terraform : Suppression du provider Docker problématique +* Scripts : Ajout de gestion d'erreurs robuste +* Tests : Ajout de tests unitaires Python +* Health checks : Ajout dans Docker Compose et K8s -#🎯 Améliorations : -Structure de projet logique et organisée - -Scripts PowerShell avec paramètres et gestion d'erreurs - -Configuration monitoring fonctionnelle - -Documentation claire étape par étape - -Solutions de dépannage incluses - -Versionning spécifique des images Docker +## 🎯 Améliorations : +* Structure de projet logique et organisée +* Scripts PowerShell avec paramètres et gestion d'erreurs +* Configuration monitoring fonctionnelle +* Documentation claire étape par étape +* Solutions de dépannage incluses +* Versionning spécifique des images Docker -# Commentaire de Oualim -# Ce TP permet pour l'instant, de réaliser le paysage de docker pour un débutant, de comprendre une organisation de dossiers et fichiers, de créer qq containeurs docker : -# - http://localhost:8000 (App) -# - http://localhost:8000/docs (Documentation API) -# - http://localhost:9090 (Prometheus) -# - http://localhost:3000 (Grafana - admin/admin123) -# - http://localhost:9000 (Portainer) +> Commentaire de Oualim +> Ce TP permet pour l'instant, de réaliser le paysage de docker pour un débutant, de comprendre une organisation de dossiers et fichiers, de créer qq containeurs docker : +> - http://localhost:8000 (App) +> - http://localhost:8000/docs (Documentation API) +> - http://localhost:9090 (Prometheus) +> - http://localhost:3000 (Grafana - admin/admin123) +> - http://localhost:9000 (Portainer) +# 🚀 TP DevOps Windows - Stack Complète Locale (Corrigé & Optimisé) +## 📋 PRÉ-REQUIS WINDOWS - Installation Pas à Pas +### 🔧 1. Préparation du système (PowerShell Administrateur) +Ouvrir PowerShell en tant qu'ADMINISTRATEUR (clic droit → Exécuter en tant qu'administrateur) -#🚀 TP DevOps Windows - Stack Complète Locale (Corrigé & Optimisé) -#📋 PRÉ-REQUIS WINDOWS - Installation Pas à Pas -#🔧 1. Préparation du système (PowerShell Administrateur) - -# Ouvrir PowerShell en tant qu'ADMINISTRATEUR (clic droit → Exécuter en tant qu'administrateur) - -# 1. Activer les fonctionnalités Windows nécessaires +1. Activer les fonctionnalités Windows nécessaires +``` Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform - -# 2. Installer WSL2 et Ubuntu +``` +2. Installer WSL2 et Ubuntu +``` wsl --install -d Ubuntu-22.04 - -# 3. Définir WSL2 comme version par défaut +``` +3. Définir WSL2 comme version par défaut +``` wsl --set-default-version 2 - -# 4. Redémarrer l'ordinateur (OBLIGATOIRE) +``` +4. Redémarrer l'ordinateur (OBLIGATOIRE) +``` Restart-Computer -#📥 2. Installation des outils (après redémarrage) +``` +### 📥 2. Installation des outils (après redémarrage) -# 1. Installer Chocolatey (package manager Windows) +1. Installer Chocolatey (package manager Windows) +``` Set-ExecutionPolicy Bypass -Scope Process -Force [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072 iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1')) - -# 2. Installer tous les outils +``` +2. Installer tous les outils +``` choco install -y git docker-desktop vscode kubernetes-cli minikube terraform helm postman -#🐧 3. Configuration WSL2 et Ubuntu - +``` +3. Configuration WSL2 et Ubuntu +``` # Vérifier l'installation WSL wsl --list --verbose # Doit afficher : Ubuntu-22.04 Running 2 +``` -# Entrer dans WSL pour configurer +Entrer dans WSL pour configurer +``` wsl - -# Dans le terminal Ubuntu WSL : +``` +Dans le terminal Ubuntu WSL : +``` sudo apt update sudo apt upgrade -y sudo apt install -y python3 python3-pip python3-venv nodejs npm curl wget - -# Créer un alias pratique +``` +Créer un alias pratique +``` echo "alias k=kubectl" >> ~/.bashrc source ~/.bashrc exit # Retour à PowerShell -#🐋 ÉTAPE 1 : CONFIGURATION DOCKER DESKTOP -#⚙️ Configuration manuelle obligatoire : +``` + +## 🐋 ÉTAPE 1 : CONFIGURATION DOCKER DESKTOP +### ⚙️ Configuration manuelle obligatoire : Ouvrir Docker Desktop après installation Settings → General : - -✅ Use WSL 2 based engine - -✅ Expose daemon on tcp://localhost:2375 without TLS - +* ✅ Use WSL 2 based engine +* ✅ Expose daemon on tcp://localhost:2375 without TLS Settings → Resources → WSL Integration : - -✅ Enable integration with my default WSL distro - -✅ Ubuntu-22.04 - +* ✅ Enable integration with my default WSL distro +* ✅ Ubuntu-22.04 Settings → Kubernetes : - -✅ Enable Kubernetes - -✅ Deploy Docker Stacks to Kubernetes by default +* ✅ Enable Kubernetes +* ✅ Deploy Docker Stacks to Kubernetes by default Settings → Advanced : - -CPUs : 4 (ou 50% de vos CPUs) - -Memory : 4.0 GB (ou 50% de votre RAM) - -Swap : 1.0 GB - +* CPUs : 4 (ou 50% de vos CPUs) +* Memory : 4.0 GB (ou 50% de votre RAM) +* Swap : 1.0 GB Appliquer et redémarrer Docker Desktop -#✅ Vérification Docker/WSL2 : - +### ✅ Vérification Docker/WSL2 : +``` # Dans PowerShell docker --version # Doit afficher : Docker version 24.0.x - docker run hello-world # Doit afficher "Hello from Docker!" - -# Vérifier l'intégration WSL2 +``` +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 : +``` +Doit fonctionner sans erreur +*📁 ÉTAPE 2 : STRUCTURE DU PROJET OPTIMISÉE +*🗂️ Création de la structure : -# Créer le dossier principal +Créer le dossier principal +``` mkdir C:\DevOpsProject cd C:\DevOpsProject +``` -# Structure ORGANISÉE et LOGIQUE +Structure ORGANISÉE et LOGIQUE +``` New-Item -ItemType Directory -Path @( "src\app", "src\app\tests", @@ -163,8 +157,10 @@ New-Item -ItemType Directory -Path @( "docs", "config" ) +``` -# Structure finale : +Structure finale : +``` C:\DevOpsProject\ ├── src\ # Code source │ ├── app\ # Application Python @@ -177,6 +173,8 @@ 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