TP7 - Déploiement Ansible complet avec scripts PowerShell et documentation
This commit is contained in:
@@ -0,0 +1,305 @@
|
||||
# 🚀 COMMENCEZ ICI - Déploiement Ansible DockeZR
|
||||
|
||||
## ✅ Résultat du Diagnostic
|
||||
|
||||
Voici ce qui a été créé pour vous:
|
||||
|
||||
### 📁 Fichiers Créés
|
||||
|
||||
✓ **deploy.yml** - Playbook Ansible principal (commenté)
|
||||
✓ **inventory.ini** - Configuration des serveurs
|
||||
✓ **group_vars/all.yml** - Variables de configuration
|
||||
✓ **templates/env.prod.j2** - Template d'environnement
|
||||
✓ **ansible.cfg** - Configuration Ansible
|
||||
✓ **deploy-interactive.ps1** - Script de déploiement automatique
|
||||
✓ **test-prereqs.ps1** - Script de vérification
|
||||
✓ **README.md** - Documentation complète
|
||||
✓ **GUIDE_EXECUTION.md** - Guide détaillé
|
||||
✓ **QUICK_START.md** - Guide rapide
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Actions Requises (5 ÉTAPES)
|
||||
|
||||
### Étape 1: Installer WSL avec Ubuntu (SI PAS DÉJÀ FAIT)
|
||||
|
||||
```powershell
|
||||
# Dans PowerShell en administrateur:
|
||||
wsl --install -d Ubuntu
|
||||
|
||||
# Redémarrer Windows après installation
|
||||
# Au redémarrage, Ubuntu s'ouvrira et vous demandera de créer un utilisateur
|
||||
```
|
||||
|
||||
### Étape 2: Installer Ansible dans WSL
|
||||
|
||||
```powershell
|
||||
# Dans PowerShell normal:
|
||||
wsl
|
||||
|
||||
# Une fois dans WSL Ubuntu:
|
||||
sudo apt update
|
||||
sudo apt install ansible git -y
|
||||
ansible --version
|
||||
|
||||
# Pour sortir de WSL:
|
||||
exit
|
||||
```
|
||||
|
||||
### Étape 3: Configurer l'Inventaire
|
||||
|
||||
Vous devez modifier `inventory.ini` avec les informations de votre serveur:
|
||||
|
||||
```ini
|
||||
[production]
|
||||
server ansible_host=VOTRE_IP_SERVEUR ansible_user=VOTRE_USER ansible_ssh_private_key_file=../../sskdockerz/ssh-key-2025-10-16.key
|
||||
```
|
||||
|
||||
**Remplacez:**
|
||||
- `VOTRE_IP_SERVEUR` → L'adresse IP de votre serveur (ex: 192.168.1.100)
|
||||
- `VOTRE_USER` → Votre utilisateur SSH (ex: ubuntu, root, debian)
|
||||
|
||||
**Exemple:**
|
||||
```ini
|
||||
[production]
|
||||
server ansible_host=192.168.1.100 ansible_user=ubuntu ansible_ssh_private_key_file=../../sskdockerz/ssh-key-2025-10-16.key
|
||||
```
|
||||
|
||||
### Étape 4: Configurer les Variables
|
||||
|
||||
Éditez `group_vars\all.yml`:
|
||||
|
||||
```yaml
|
||||
# Ligne 4: URL de votre repository
|
||||
project_repo: "https://github.com/VOTRE_USERNAME/dockezr.git"
|
||||
|
||||
# Ligne 18: Mot de passe PostgreSQL (IMPORTANT!)
|
||||
postgres_password: "VotreMotDePasseSecurise2024!"
|
||||
|
||||
# Ligne 24: Mot de passe Grafana (IMPORTANT!)
|
||||
grafana_admin_password: "AdminGrafana2024!"
|
||||
```
|
||||
|
||||
### Étape 5: Lancer le Déploiement
|
||||
|
||||
```powershell
|
||||
# Option A: Script interactif (RECOMMANDÉ)
|
||||
.\deploy-interactive.ps1
|
||||
|
||||
# Le script vous demandera l'IP et l'utilisateur
|
||||
# Puis déploiera automatiquement
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎬 Commandes Rapides
|
||||
|
||||
### Vérifier les Prérequis
|
||||
|
||||
```powershell
|
||||
.\test-prereqs.ps1
|
||||
```
|
||||
|
||||
### Déployer avec Configuration Interactive
|
||||
|
||||
```powershell
|
||||
.\deploy-interactive.ps1
|
||||
```
|
||||
|
||||
### Déployer Directement (après configuration manuelle)
|
||||
|
||||
```powershell
|
||||
# Dans PowerShell, depuis le dossier ansible/
|
||||
$wslPath = wsl wslpath -a "$PWD"
|
||||
wsl bash -c "cd '$wslPath'; ansible-playbook -i inventory.ini deploy.yml"
|
||||
```
|
||||
|
||||
### Tester la Connexion SSH
|
||||
|
||||
```powershell
|
||||
$wslPath = wsl wslpath -a "$PWD"
|
||||
wsl bash -c "cd '$wslPath'; ansible all -i inventory.ini -m ping"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 Ce que le Playbook Fait
|
||||
|
||||
1. ✅ **Mise à jour du système** Linux
|
||||
2. ✅ **Installation de Docker** + Docker Compose
|
||||
3. ✅ **Configuration des permissions** utilisateur
|
||||
4. ✅ **Clonage du repository** GitHub
|
||||
5. ✅ **Configuration** des variables d'environnement
|
||||
6. ✅ **Construction** des images Docker
|
||||
7. ✅ **Lancement** de tous les services
|
||||
8. ✅ **Vérification** et affichage des logs
|
||||
|
||||
**Durée totale: 5-10 minutes**
|
||||
|
||||
---
|
||||
|
||||
## 🌐 Accès aux Services
|
||||
|
||||
Après déploiement réussi, accédez à:
|
||||
|
||||
| Service | URL | Description |
|
||||
|---------|-----|-------------|
|
||||
| **Frontend** | http://VOTRE_IP:3000 | Interface de réservation |
|
||||
| **Backend** | http://VOTRE_IP:8001 | API REST |
|
||||
| **Swagger** | http://VOTRE_IP:8001/docs | Documentation API interactive |
|
||||
| **Prometheus** | http://VOTRE_IP:9090 | Monitoring |
|
||||
| **Grafana** | http://VOTRE_IP:3001 | Tableaux de bord (admin/votre_mdp) |
|
||||
|
||||
---
|
||||
|
||||
## 📸 Captures d'Écran pour le Livrable TP7
|
||||
|
||||
### 1. Exécution du Playbook
|
||||
|
||||
```powershell
|
||||
.\deploy-interactive.ps1
|
||||
```
|
||||
|
||||
📸 **Capturez** le terminal montrant "DEPLOIEMENT REUSSI!"
|
||||
|
||||
### 2. État des Conteneurs
|
||||
|
||||
```powershell
|
||||
# Se connecter au serveur
|
||||
ssh -i ..\..\sskdockerz\ssh-key-2025-10-16.key VOTRE_USER@VOTRE_IP
|
||||
|
||||
# Sur le serveur
|
||||
docker ps
|
||||
```
|
||||
|
||||
📸 **Capturez** la liste des conteneurs running
|
||||
|
||||
### 3. Application Web
|
||||
|
||||
Ouvrez dans votre navigateur:
|
||||
- http://VOTRE_IP:3000
|
||||
- http://VOTRE_IP:8001/docs
|
||||
|
||||
📸 **Capturez** les pages web
|
||||
|
||||
---
|
||||
|
||||
## 🐛 Problèmes Courants
|
||||
|
||||
### Problème: "Ansible non installé"
|
||||
|
||||
**Solution:**
|
||||
```powershell
|
||||
wsl
|
||||
sudo apt update && sudo apt install ansible -y
|
||||
exit
|
||||
```
|
||||
|
||||
### Problème: "Permission denied (publickey)"
|
||||
|
||||
**Solution:**
|
||||
```powershell
|
||||
# Configurer les permissions de la clé
|
||||
$wslKeyPath = wsl wslpath -a "$PWD\..\..\sskdockerz\ssh-key-2025-10-16.key"
|
||||
wsl chmod 600 "$wslKeyPath"
|
||||
|
||||
# Tester la connexion manuelle
|
||||
wsl ssh -i $wslKeyPath VOTRE_USER@VOTRE_IP
|
||||
```
|
||||
|
||||
### Problème: "bash: not found"
|
||||
|
||||
**Solution:** WSL Ubuntu n'est pas installé correctement
|
||||
|
||||
```powershell
|
||||
# Réinstaller Ubuntu
|
||||
wsl --unregister Ubuntu
|
||||
wsl --install -d Ubuntu
|
||||
```
|
||||
|
||||
### Problème: "Host unreachable"
|
||||
|
||||
**Solution:**
|
||||
1. Vérifiez que le serveur est allumé
|
||||
2. Vérifiez l'adresse IP dans `inventory.ini`
|
||||
3. Testez: `ping VOTRE_IP`
|
||||
4. Vérifiez que le port SSH (22) est ouvert
|
||||
|
||||
---
|
||||
|
||||
## 📚 Documentation Complète
|
||||
|
||||
- **QUICK_START.md** - Guide rapide 5 minutes
|
||||
- **GUIDE_EXECUTION.md** - Guide détaillé pas à pas
|
||||
- **README.md** - Documentation complète Ansible
|
||||
- **deploy.yml** - Playbook commenté (pour le livrable)
|
||||
|
||||
---
|
||||
|
||||
## ✅ Checklist Livrable TP7
|
||||
|
||||
Pour valider le TP7, vous devez fournir:
|
||||
|
||||
- [x] **deploy.yml** commenté (✅ déjà fait)
|
||||
- [ ] **inventory.ini** configuré avec votre serveur
|
||||
- [ ] **group_vars/all.yml** configuré
|
||||
- [ ] **Capture d'écran**: Exécution réussie du playbook
|
||||
- [ ] **Capture d'écran**: docker ps sur le serveur
|
||||
- [ ] **Capture d'écran**: Application web accessible
|
||||
- [ ] **Documentation**: Ce dossier ansible/ complet
|
||||
|
||||
---
|
||||
|
||||
## 🎓 Résumé de l'Architecture
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────┐
|
||||
│ Votre Machine (Windows) │
|
||||
│ ├── WSL (Ubuntu) │
|
||||
│ │ └── Ansible │
|
||||
│ └── Scripts PowerShell │
|
||||
└──────────────┬──────────────────────────────┘
|
||||
│ SSH
|
||||
▼
|
||||
┌─────────────────────────────────────────────┐
|
||||
│ Serveur Linux │
|
||||
│ ├── Docker Engine │
|
||||
│ ├── DockeZR Repository (cloné) │
|
||||
│ └── Conteneurs: │
|
||||
│ ├── PostgreSQL (db) │
|
||||
│ ├── FastAPI (backend) │
|
||||
│ ├── Next.js (frontend) │
|
||||
│ ├── Prometheus │
|
||||
│ └── Grafana │
|
||||
└─────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 💡 Prochaines Étapes Après Déploiement
|
||||
|
||||
1. **Tester l'application** - http://VOTRE_IP:3000
|
||||
2. **Créer quelques réservations** de test
|
||||
3. **Vérifier les logs** - `docker compose logs -f`
|
||||
4. **Configurer Grafana** - Créer des dashboards
|
||||
5. **Sauvegardes** - Mettre en place des backups DB
|
||||
6. **Sécurité** - Configurer un pare-feu
|
||||
7. **HTTPS** - Configurer SSL/TLS avec Let's Encrypt
|
||||
|
||||
---
|
||||
|
||||
## 🆘 Besoin d'Aide ?
|
||||
|
||||
Si vous rencontrez des problèmes:
|
||||
|
||||
1. **Lancez le diagnostic**: `.\test-prereqs.ps1`
|
||||
2. **Lisez les logs**: Les messages d'erreur sont explicites
|
||||
3. **Consultez GUIDE_EXECUTION.md**: Guide détaillé
|
||||
4. **Vérifiez la connectivité**: `ping VOTRE_IP`
|
||||
|
||||
---
|
||||
|
||||
**Vous êtes prêt ! Bonne chance avec votre déploiement ! 🚀**
|
||||
|
||||
*Créé automatiquement pour le TP7 - OPERATE*
|
||||
|
||||
Reference in New Issue
Block a user