docs(deploy): Flux IDE -> WSL -> CT200 -> CT201
- Corriger deploy.sh : synchronisation IDE -> WSL avant deploy - Remplacer here-doc par commande ssh directe pour eviter erreurs CRLF/encoding - Mettre a jour INSTRUCTIONS.md avec le flux de deploiement status-monitor - Mettre a jour AGENT_devops.md avec le workflow complet IDE -> WSL -> CT200 -> CT201
This commit is contained in:
+277
-263
@@ -1,263 +1,277 @@
|
||||
# AGENTS.md - Instructions pour Mistral Vibe et autres agents
|
||||
|
||||
## 🎯 Workflow DevOps Homelab
|
||||
|
||||
### ✅ RÈGLES FONDAMENTALES
|
||||
|
||||
1. **TOUJOURS travailler depuis le dépôt Git**
|
||||
- Dépôt principal : https://git.peis.fr/VisualPCI/homelab-config
|
||||
- Clone local : `~/homelab-config` (WSL)
|
||||
- **JAMAIS** modifier les fichiers locaux sur `C:\Users\theo\.vibe\Proxmox\inventair\`
|
||||
|
||||
2. **Avant TOUTE action** :
|
||||
```bash
|
||||
cd ~/homelab-config
|
||||
GIT_SSL_NO_VERIFY=true git pull origin main
|
||||
```
|
||||
|
||||
3. **Après TOUTE modification** :
|
||||
```bash
|
||||
git add .
|
||||
git commit -m "description claire de la modification"
|
||||
GIT_SSL_NO_VERIFY=true git push origin main
|
||||
```
|
||||
|
||||
4. **Authentification Git** :
|
||||
- URL : `https://VisualPCI:3N14E7GWVSgi3K@git.peis.fr/VisualPCI/homelab-config.git`
|
||||
- Utilisateur : VisualPCI
|
||||
- Mot de passe : 3N14E7GWVSgi3K
|
||||
|
||||
---
|
||||
|
||||
## 📁 Structure du dépôt
|
||||
|
||||
```
|
||||
homelab-config/
|
||||
├── AGENTS.md ← Ce fichier
|
||||
├── INSTRUCTIONS.md ← Instructions générales
|
||||
├── homelab-inventaire.md ← Inventaire principal
|
||||
├── status-monitor/ ← Service de monitoring
|
||||
│ ├── app.py ← Code principal (corrigé)
|
||||
│ ├── app_v1.py ← Backup ancienne version
|
||||
│ ├── app_v2.py ← Backup ancienne version
|
||||
│ ├── deploy.sh ← Script de déploiement
|
||||
│ └── dynamic_traefik.yml ← Configuration Traefik
|
||||
├── traefik-config/ ← Configurations Traefik
|
||||
└── procedure-*.md ← Documentations
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Déploiement Status Monitor (CT201)
|
||||
|
||||
### Serveur cible
|
||||
- **IP** : 192.168.0.201
|
||||
- **Service** : `status-monitor` (systemd)
|
||||
- **Dossier** : `/opt/status-monitor/`
|
||||
- **URL** : https://status.peis.fr
|
||||
|
||||
### Workflow de déploiement
|
||||
|
||||
#### 1. Modifier le code
|
||||
```bash
|
||||
cd ~/homelab-config
|
||||
# Modifier les fichiers dans status-monitor/
|
||||
git add status-monitor/
|
||||
git commit -m "Fix: description de la correction"
|
||||
git push origin main
|
||||
```
|
||||
|
||||
#### 2. Déployer sur CT201
|
||||
**Option A - Déploiement automatique :**
|
||||
```bash
|
||||
wsl bash ~/homelab-config/status-monitor/deploy.sh
|
||||
```
|
||||
|
||||
**Option B - Déploiement manuel :**
|
||||
```bash
|
||||
# Copier les fichiers
|
||||
scp ~/homelab-config/status-monitor/app.py root@192.168.0.201:/opt/status-monitor/
|
||||
scp ~/homelab-config/status-monitor/deploy.sh root@192.168.0.201:/opt/status-monitor/
|
||||
|
||||
# Redémarrer le service
|
||||
ssh root@192.168.0.201 "chmod +x /opt/status-monitor/deploy.sh"
|
||||
ssh root@192.168.0.201 "systemctl restart status-monitor"
|
||||
```
|
||||
|
||||
#### 3. Vérifier le déploiement
|
||||
```bash
|
||||
# Vérifier l'API
|
||||
curl -k -s https://status.peis.fr/api/status | python3 -m json.tool
|
||||
|
||||
# Ou via navigateur
|
||||
https://status.peis.fr
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🐞 Corrections courantes
|
||||
|
||||
### Problème : Cache non rafraîchi
|
||||
**Symptôme** : La page status affiche des données anciennes
|
||||
|
||||
**Cause** : `status_cache` n'était pas rafraîchi après le premier chargement
|
||||
|
||||
**Solution appliquée** :
|
||||
```python
|
||||
# AVANT (bug) :
|
||||
if not status_cache:
|
||||
check_all()
|
||||
|
||||
# APRÈS (corrigé) :
|
||||
check_all() # Toujours rafraîchir à chaque appel
|
||||
```
|
||||
|
||||
**Fichier** : `status-monitor/app.py` (ligne 372)
|
||||
|
||||
---
|
||||
|
||||
## 📋 Commandes utiles
|
||||
|
||||
### Git
|
||||
```bash
|
||||
# État
|
||||
cd ~/homelab-config && git status
|
||||
|
||||
# Pull
|
||||
cd ~/homelab-config && git pull
|
||||
|
||||
# Commit
|
||||
cd ~/homelab-config && git add . && git commit -m "message" && git push
|
||||
|
||||
# Voir l'historique
|
||||
cd ~/homelab-config && git log --oneline --graph
|
||||
```
|
||||
|
||||
### SSH CT201 (via rebond CT200)
|
||||
```bash
|
||||
# Se connecter (CT200 est le bastion)
|
||||
ssh -J root@192.168.0.100 root@192.168.0.201
|
||||
|
||||
# Voir les logs du service
|
||||
ssh -J root@192.168.0.100 root@192.168.0.201 "journalctl -u status-monitor -f"
|
||||
|
||||
# État du service
|
||||
ssh -J root@192.168.0.100 root@192.168.0.201 "systemctl status status-monitor"
|
||||
|
||||
# Redémarrer
|
||||
ssh -J root@192.168.0.100 root@192.168.0.201 "systemctl restart status-monitor"
|
||||
```
|
||||
|
||||
### SSH CT200 (direct)
|
||||
```bash
|
||||
# Se connecter directement
|
||||
ssh -i ~/.ssh/id_ed25519 root@192.168.0.100
|
||||
|
||||
# Copier des fichiers vers CT200
|
||||
scp -i ~/.ssh/id_ed25519 fichier root@192.168.0.100:/destination/
|
||||
|
||||
# Copier des fichiers de CT200 vers local
|
||||
scp -i ~/.ssh/id_ed25519 root@192.168.0.100:/source/fichier ./
|
||||
```
|
||||
|
||||
### Gitea
|
||||
- **URL** : https://git.peis.fr
|
||||
- **Compte** : VisualPCI
|
||||
- **Dépôt** : https://git.peis.fr/VisualPCI/homelab-config
|
||||
|
||||
### Workflow complet utilisé pour la correction du 20/07/2026
|
||||
|
||||
**Problème** : SyntaxError: Unexpected identifier 'card' (at index.html:101:35)
|
||||
**Cause** : Dans `status-monitor/app.py`, les strings JavaScript utilisaient `class=\"` qui générait du code JS invalide.
|
||||
|
||||
**Workflow appliqué** :
|
||||
```bash
|
||||
# 1. Cloner depuis WSL (Ubuntu)
|
||||
cd ~/homelab-config
|
||||
git clone https://VisualPCI:3N14E7GWVSgi3K@git.peis.fr/VisualPCI/homelab-config.git
|
||||
|
||||
# 2. Récupérer le fichier buggé depuis CT201 (via CT200)
|
||||
ssh -J root@192.168.0.100 root@192.168.0.201 cat /opt/status-monitor/app.py > status-monitor/app_from_ct201.py
|
||||
|
||||
# 3. Corriger le bug avec Python (remplacer \" par ')
|
||||
python3 -c "
|
||||
with open('status-monitor/app.py', 'r') as f:
|
||||
content = f.read()
|
||||
content = content.replace('\\\"', \"'\")
|
||||
with open('status-monitor/app.py', 'w') as f:
|
||||
f.write(content)
|
||||
"
|
||||
|
||||
# 4. Vérifier la syntaxe Python
|
||||
python3 -m py_compile status-monitor/app.py
|
||||
|
||||
# 5. Commiter avec GIT_SSL_NO_VERIFY
|
||||
GIT_SSL_NO_VERIFY=true git add status-monitor/app.py
|
||||
GIT_SSL_NO_VERIFY=true git commit -m "Fix(status-monitor): Correction des guillemets dans le JavaScript - Resout SyntaxError loading"
|
||||
|
||||
# 6. Pull avec rebase (conflit détecté)
|
||||
GIT_SSL_NO_VERIFY=true git pull --rebase origin main
|
||||
|
||||
# 7. Pousser vers git.peis.fr
|
||||
GIT_SSL_NO_VERIFY=true git push origin main
|
||||
|
||||
# 8. Deployer sur CT201 (via CT200 comme bastion)
|
||||
# Méthode 1 : Copier via CT200
|
||||
cat status-monitor/app.py | ssh -i ~/.ssh/id_ed25519 root@192.168.0.100 'cat > /tmp/app_new.py'
|
||||
ssh -i ~/.ssh/id_ed25519 root@192.168.0.100 'scp /tmp/app_new.py root@192.168.0.201:/opt/status-monitor/app.py && chmod +x /opt/status-monitor/app.py'
|
||||
ssh -i ~/.ssh/id_ed25519 root@192.168.0.100 'ssh root@192.168.0.201 systemctl restart status-monitor'
|
||||
|
||||
# Méthode 2 : Direct avec -J (bastion)
|
||||
scp -J root@192.168.0.100 -i ~/.ssh/id_ed25519 status-monitor/app.py root@192.168.0.201:/opt/status-monitor/app.py
|
||||
ssh -J root@192.168.0.100 root@192.168.0.201 'chmod +x /opt/status-monitor/app.py && systemctl restart status-monitor'
|
||||
```
|
||||
|
||||
**Résultat** :
|
||||
- Commit `685060c` poussé vers git.peis.fr
|
||||
- Fichier corrigé déployé sur CT201
|
||||
- Service redémarré avec succès
|
||||
|
||||
**Leçons apprises** :
|
||||
- Toujours utiliser `-J` pour le rebond SSH vers CT201
|
||||
- `GIT_SSL_NO_VERIFY=true` est nécessaire pour contourner les problèmes de certificat
|
||||
- Utiliser `python3` pour les scripts de correction complexes
|
||||
- Tester la syntaxe Python avant de deployer
|
||||
|
||||
---
|
||||
|
||||
## 🚨 Erreurs à éviter
|
||||
|
||||
- ❌ Modifier directement les fichiers sur CT201 sans passer par Git
|
||||
- ❌ Oublier de faire `git pull` avant de modifier un fichier
|
||||
- ❌ Oublier de commiter et pusher après une modification
|
||||
- ❌ Travailler depuis plusieurs emplacements différents
|
||||
- ❌ Modifier les fichiers dans `C:\Users\theo\.vibe\Proxmox\inventair\`
|
||||
|
||||
---
|
||||
|
||||
## ✅ Checklist avant déploiement
|
||||
|
||||
- [ ] `git pull` exécuté
|
||||
- [ ] Modifications testées localement
|
||||
- [ ] `git add .` exécuté
|
||||
- [ ] `git commit -m "..."` exécuté
|
||||
- [ ] `git push origin main` exécuté
|
||||
- [ ] Déploiement vérifié sur https://status.peis.fr
|
||||
|
||||
---
|
||||
|
||||
## 📊 Historique des modifications
|
||||
|
||||
| Date | Commit | Description |
|
||||
|------|--------|-------------|
|
||||
| 2026-07-20 | `685060c` | Fix(status-monitor): Correction des guillemets dans le JavaScript - Resout SyntaxError loading |
|
||||
| 2026-07-19 | `6b77f49` | Fix: Force cache refresh on /api/status endpoint |
|
||||
| 2026-07-19 | `3ed1d96` | Add: deploy.sh script for DevOps workflow |
|
||||
| 2026-07-19 | `da6b794` | Ajout: INSTRUCTIONS.md pour workflow Git |
|
||||
|
||||
---
|
||||
|
||||
*Dernière mise à jour : 2026-07-20*
|
||||
|
||||
*Dernière mise à jour : 2026-07-19*
|
||||
*Pour : Mistral Vibe et agents homelab*
|
||||
# AGENTS.md - Instructions pour Mistral Vibe et autres agents
|
||||
|
||||
## 🎯 Workflow DevOps Homelab
|
||||
|
||||
### ✅ RÈGLES FONDAMENTALES
|
||||
|
||||
1. **TOUJOURS travailler depuis le dépôt Git**
|
||||
- Dépôt principal : https://git.peis.fr/VisualPCI/homelab-config
|
||||
- Clone local : `~/homelab-config` (WSL)
|
||||
- **JAMAIS** modifier les fichiers locaux sur `C:\Users\theo\.vibe\Proxmox\inventair\`
|
||||
|
||||
2. **Avant TOUTE action** :
|
||||
```bash
|
||||
cd ~/homelab-config
|
||||
GIT_SSL_NO_VERIFY=true git pull origin main
|
||||
```
|
||||
|
||||
3. **Après TOUTE modification** :
|
||||
```bash
|
||||
git add .
|
||||
git commit -m "description claire de la modification"
|
||||
GIT_SSL_NO_VERIFY=true git push origin main
|
||||
```
|
||||
|
||||
4. **Authentification Git** :
|
||||
- URL : `https://VisualPCI:3N14E7GWVSgi3K@git.peis.fr/VisualPCI/homelab-config.git`
|
||||
- Utilisateur : VisualPCI
|
||||
- Mot de passe : 3N14E7GWVSgi3K
|
||||
|
||||
---
|
||||
|
||||
## 📁 Structure du dépôt
|
||||
|
||||
```
|
||||
homelab-config/
|
||||
├── AGENTS.md ← Ce fichier
|
||||
├── INSTRUCTIONS.md ← Instructions générales
|
||||
├── homelab-inventaire.md ← Inventaire principal
|
||||
├── status-monitor/ ← Service de monitoring
|
||||
│ ├── app.py ← Code principal (corrigé)
|
||||
│ ├── app_v1.py ← Backup ancienne version
|
||||
│ ├── app_v2.py ← Backup ancienne version
|
||||
│ ├── deploy.sh ← Script de déploiement
|
||||
│ └── dynamic_traefik.yml ← Configuration Traefik
|
||||
├── traefik-config/ ← Configurations Traefik
|
||||
└── procedure-*.md ← Documentations
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Déploiement Status Monitor (CT201)
|
||||
|
||||
### Serveur cible
|
||||
- **IP** : 192.168.0.201
|
||||
- **Service** : `status-monitor` (systemd)
|
||||
- **Dossier** : `/opt/status-monitor/`
|
||||
- **URL** : https://status.peis.fr
|
||||
|
||||
### Workflow de déploiement
|
||||
|
||||
**⚠️ Flux obligatoire : IDE (Windows) -> WSL -> CT200/CT100 (bastion 192.168.0.100) -> CT201 (192.168.0.201)**
|
||||
|
||||
```
|
||||
IDE (C:\Users\theo\homelab_ia\homelab-config)
|
||||
└── copy ───> WSL (~/homelab-config)
|
||||
└── scp -J root@192.168.0.100 ───> CT201 (192.168.0.201)
|
||||
```
|
||||
|
||||
#### 1. Modifier le code dans l'IDE
|
||||
Modifier `status-monitor/app.py` dans l'IDE Windows.
|
||||
|
||||
#### 2. Synchroniser IDE -> WSL
|
||||
```bash
|
||||
cp /mnt/c/Users/theo/homelab_ia/homelab-config/status-monitor/app.py ~/homelab-config/status-monitor/app.py
|
||||
```
|
||||
|
||||
#### 3. Commiter et pusher
|
||||
```bash
|
||||
cd ~/homelab-config
|
||||
GIT_SSL_NO_VERIFY=true git add status-monitor/
|
||||
GIT_SSL_NO_VERIFY=true git commit -m "Fix: description de la correction"
|
||||
GIT_SSL_NO_VERIFY=true git push origin main
|
||||
```
|
||||
|
||||
#### 4. Déployer sur CT201
|
||||
**Option A - Déploiement automatique (recommandé) :**
|
||||
```bash
|
||||
wsl bash ~/homelab-config/status-monitor/deploy.sh
|
||||
```
|
||||
Ce script synchronise automatiquement l'IDE -> WSL puis déploie via CT200/CT100.
|
||||
|
||||
**Option B - Déploiement manuel :**
|
||||
```bash
|
||||
# WSL -> CT201 (rebond via CT200/CT100 bastion)
|
||||
scp -J root@192.168.0.100 -i ~/.ssh/id_ed25519 ~/homelab-config/status-monitor/app.py root@192.168.0.201:/tmp/app.py
|
||||
|
||||
# Installation et redémarrage sur CT201
|
||||
ssh -J root@192.168.0.100 -i ~/.ssh/id_ed25519 root@192.168.0.201 'mv /tmp/app.py /opt/status-monitor/app.py && systemctl restart status-monitor'
|
||||
```
|
||||
|
||||
#### 5. Vérifier le déploiement
|
||||
```bash
|
||||
# Vérifier l'API
|
||||
curl -k -s https://status.peis.fr/api/status | python3 -m json.tool
|
||||
|
||||
# Ou via navigateur
|
||||
https://status.peis.fr
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🐞 Corrections courantes
|
||||
|
||||
### Problème : Cache non rafraîchi
|
||||
**Symptôme** : La page status affiche des données anciennes
|
||||
|
||||
**Cause** : `status_cache` n'était pas rafraîchi après le premier chargement
|
||||
|
||||
**Solution appliquée** :
|
||||
```python
|
||||
# AVANT (bug) :
|
||||
if not status_cache:
|
||||
check_all()
|
||||
|
||||
# APRÈS (corrigé) :
|
||||
check_all() # Toujours rafraîchir à chaque appel
|
||||
```
|
||||
|
||||
**Fichier** : `status-monitor/app.py` (ligne 372)
|
||||
|
||||
---
|
||||
|
||||
## 📋 Commandes utiles
|
||||
|
||||
### Git
|
||||
```bash
|
||||
# État
|
||||
cd ~/homelab-config && git status
|
||||
|
||||
# Pull
|
||||
cd ~/homelab-config && git pull
|
||||
|
||||
# Commit
|
||||
cd ~/homelab-config && git add . && git commit -m "message" && git push
|
||||
|
||||
# Voir l'historique
|
||||
cd ~/homelab-config && git log --oneline --graph
|
||||
```
|
||||
|
||||
### SSH CT201 (via rebond CT200)
|
||||
```bash
|
||||
# Se connecter (CT200 est le bastion)
|
||||
ssh -J root@192.168.0.100 root@192.168.0.201
|
||||
|
||||
# Voir les logs du service
|
||||
ssh -J root@192.168.0.100 root@192.168.0.201 "journalctl -u status-monitor -f"
|
||||
|
||||
# État du service
|
||||
ssh -J root@192.168.0.100 root@192.168.0.201 "systemctl status status-monitor"
|
||||
|
||||
# Redémarrer
|
||||
ssh -J root@192.168.0.100 root@192.168.0.201 "systemctl restart status-monitor"
|
||||
```
|
||||
|
||||
### SSH CT200 (direct)
|
||||
```bash
|
||||
# Se connecter directement
|
||||
ssh -i ~/.ssh/id_ed25519 root@192.168.0.100
|
||||
|
||||
# Copier des fichiers vers CT200
|
||||
scp -i ~/.ssh/id_ed25519 fichier root@192.168.0.100:/destination/
|
||||
|
||||
# Copier des fichiers de CT200 vers local
|
||||
scp -i ~/.ssh/id_ed25519 root@192.168.0.100:/source/fichier ./
|
||||
```
|
||||
|
||||
### Gitea
|
||||
- **URL** : https://git.peis.fr
|
||||
- **Compte** : VisualPCI
|
||||
- **Dépôt** : https://git.peis.fr/VisualPCI/homelab-config
|
||||
|
||||
### Workflow complet utilisé pour la correction du 20/07/2026
|
||||
|
||||
**Problème** : SyntaxError: Unexpected identifier 'card' (at index.html:101:35)
|
||||
**Cause** : Dans `status-monitor/app.py`, les strings JavaScript utilisaient `class=\"` qui générait du code JS invalide.
|
||||
|
||||
**Workflow appliqué** :
|
||||
```bash
|
||||
# 1. Cloner depuis WSL (Ubuntu)
|
||||
cd ~/homelab-config
|
||||
git clone https://VisualPCI:3N14E7GWVSgi3K@git.peis.fr/VisualPCI/homelab-config.git
|
||||
|
||||
# 2. Récupérer le fichier buggé depuis CT201 (via CT200)
|
||||
ssh -J root@192.168.0.100 root@192.168.0.201 cat /opt/status-monitor/app.py > status-monitor/app_from_ct201.py
|
||||
|
||||
# 3. Corriger le bug avec Python (remplacer \" par ')
|
||||
python3 -c "
|
||||
with open('status-monitor/app.py', 'r') as f:
|
||||
content = f.read()
|
||||
content = content.replace('\\\"', \"'\")
|
||||
with open('status-monitor/app.py', 'w') as f:
|
||||
f.write(content)
|
||||
"
|
||||
|
||||
# 4. Vérifier la syntaxe Python
|
||||
python3 -m py_compile status-monitor/app.py
|
||||
|
||||
# 5. Commiter avec GIT_SSL_NO_VERIFY
|
||||
GIT_SSL_NO_VERIFY=true git add status-monitor/app.py
|
||||
GIT_SSL_NO_VERIFY=true git commit -m "Fix(status-monitor): Correction des guillemets dans le JavaScript - Resout SyntaxError loading"
|
||||
|
||||
# 6. Pull avec rebase (conflit détecté)
|
||||
GIT_SSL_NO_VERIFY=true git pull --rebase origin main
|
||||
|
||||
# 7. Pousser vers git.peis.fr
|
||||
GIT_SSL_NO_VERIFY=true git push origin main
|
||||
|
||||
# 8. Deployer sur CT201 (via CT200 comme bastion)
|
||||
# Méthode 1 : Copier via CT200
|
||||
cat status-monitor/app.py | ssh -i ~/.ssh/id_ed25519 root@192.168.0.100 'cat > /tmp/app_new.py'
|
||||
ssh -i ~/.ssh/id_ed25519 root@192.168.0.100 'scp /tmp/app_new.py root@192.168.0.201:/opt/status-monitor/app.py && chmod +x /opt/status-monitor/app.py'
|
||||
ssh -i ~/.ssh/id_ed25519 root@192.168.0.100 'ssh root@192.168.0.201 systemctl restart status-monitor'
|
||||
|
||||
# Méthode 2 : Direct avec -J (bastion)
|
||||
scp -J root@192.168.0.100 -i ~/.ssh/id_ed25519 status-monitor/app.py root@192.168.0.201:/opt/status-monitor/app.py
|
||||
ssh -J root@192.168.0.100 root@192.168.0.201 'chmod +x /opt/status-monitor/app.py && systemctl restart status-monitor'
|
||||
```
|
||||
|
||||
**Résultat** :
|
||||
- Commit `685060c` poussé vers git.peis.fr
|
||||
- Fichier corrigé déployé sur CT201
|
||||
- Service redémarré avec succès
|
||||
|
||||
**Leçons apprises** :
|
||||
- Toujours utiliser `-J` pour le rebond SSH vers CT201
|
||||
- `GIT_SSL_NO_VERIFY=true` est nécessaire pour contourner les problèmes de certificat
|
||||
- Utiliser `python3` pour les scripts de correction complexes
|
||||
- Tester la syntaxe Python avant de deployer
|
||||
|
||||
---
|
||||
|
||||
## 🚨 Erreurs à éviter
|
||||
|
||||
- ❌ Modifier directement les fichiers sur CT201 sans passer par Git
|
||||
- ❌ Oublier de faire `git pull` avant de modifier un fichier
|
||||
- ❌ Oublier de commiter et pusher après une modification
|
||||
- ❌ Travailler depuis plusieurs emplacements différents
|
||||
- ❌ Modifier les fichiers dans `C:\Users\theo\.vibe\Proxmox\inventair\`
|
||||
|
||||
---
|
||||
|
||||
## ✅ Checklist avant déploiement
|
||||
|
||||
- [ ] `git pull` exécuté
|
||||
- [ ] Modifications testées localement
|
||||
- [ ] `git add .` exécuté
|
||||
- [ ] `git commit -m "..."` exécuté
|
||||
- [ ] `git push origin main` exécuté
|
||||
- [ ] Déploiement vérifié sur https://status.peis.fr
|
||||
|
||||
---
|
||||
|
||||
## 📊 Historique des modifications
|
||||
|
||||
| Date | Commit | Description |
|
||||
|------|--------|-------------|
|
||||
| 2026-07-20 | `685060c` | Fix(status-monitor): Correction des guillemets dans le JavaScript - Resout SyntaxError loading |
|
||||
| 2026-07-19 | `6b77f49` | Fix: Force cache refresh on /api/status endpoint |
|
||||
| 2026-07-19 | `3ed1d96` | Add: deploy.sh script for DevOps workflow |
|
||||
| 2026-07-19 | `da6b794` | Ajout: INSTRUCTIONS.md pour workflow Git |
|
||||
|
||||
---
|
||||
|
||||
*Dernière mise à jour : 2026-07-20*
|
||||
|
||||
*Dernière mise à jour : 2026-07-19*
|
||||
*Pour : Mistral Vibe et agents homelab*
|
||||
|
||||
+74
-39
@@ -1,39 +1,74 @@
|
||||
# INSTRUCTIONS POUR VIBE
|
||||
|
||||
## RÈGLES ABSOLUES
|
||||
|
||||
1. TOUJOURS vérifier Git en premier
|
||||
cd ~/homelab-config
|
||||
git pull
|
||||
|
||||
2. TOUJOURS travailler depuis ~/homelab-config (WSL) Tu as WSL d'installé avec ubuntu. utilise le pour cloner git...
|
||||
|
||||
3. JAMAIS toucher aux fichiers locaux sur C:/Users/theo/.vibe/Proxmox/inventair/
|
||||
|
||||
4. TOUJOURS commiter et pusher après modification
|
||||
git add .
|
||||
git commit -m "description claire"
|
||||
GIT_SSL_NO_VERIFY=true git push origin main
|
||||
|
||||
## Sources de vérité
|
||||
- Dépôt Git : https://git.peis.fr/VisualPCI/homelab-config
|
||||
- Clone local : ~/homelab-config (WSL)
|
||||
- Backup local : A déplacer par Theo
|
||||
|
||||
## ERREURS À ÉVITER
|
||||
- Modifier directement C:/Users/theo/.vibe/Proxmox/inventair/*
|
||||
- Oublier de faire git pull avant modification
|
||||
- Oublier de pusher après modification
|
||||
- Travailler depuis plusieurs emplacements
|
||||
|
||||
## WORKFLOW STANDARD
|
||||
1. Recevoir la demande
|
||||
2. cd ~/homelab-config && git pull
|
||||
3. Modifier les fichiers dans ~/homelab-config
|
||||
4. Tester/valider
|
||||
5. git add . && git commit -m "..." && git push
|
||||
6. Confirmer à l'utilisateur
|
||||
|
||||
---
|
||||
Créé par : Theo
|
||||
Pour : Mistral Vibe
|
||||
# INSTRUCTIONS POUR AGENTS
|
||||
|
||||
## 📋 Sommaire des agents
|
||||
|
||||
- **[AGENT_devops.md](AGENT_devops.md)** : Opérations quotidiennes (Status Monitor, commandes SSH, corrections courantes)
|
||||
- **[AGENT_MAJ_traefik_GIT_inventaire.md](AGENT_MAJ_traefik_GIT_inventaire.md)** : Synchronisation Traefik/GIT (procédure détaillée)
|
||||
- **[AGENT-creation-lxc-proxmox.md](AGENT-creation-lxc-proxmox.md)** : Création de containers LXC sur Proxmox
|
||||
- **[AGENT-TRAEFIK-https-homelab-infomaniak.md](AGENT-TRAEFIK-https-homelab-infomaniak.md)** : Configuration HTTPS/Traefik avec Let's Encrypt
|
||||
- **[AGENT_Transfert_de_certificat_viaCT200.md](AGENT_Transfert_de_certificat_viaCT200.md)** : Transfert de certificats via CT200 comme bastion
|
||||
|
||||
---
|
||||
|
||||
## RÈGLES ABSOLUES
|
||||
|
||||
1. TOUJOURS vérifier Git en premier
|
||||
cd ~/homelab-config
|
||||
git pull
|
||||
|
||||
2. TOUJOURS travailler depuis ~/homelab-config (WSL) - Tu as WSL d'installé avec ubuntu. utilise le pour cloner git...
|
||||
|
||||
3. JAMAIS toucher aux fichiers locaux sur C:/Users/theo/.vibe/Proxmox/inventair/
|
||||
|
||||
4. TOUJOURS commiter et pusher après modification
|
||||
git add .
|
||||
git commit -m "description claire"
|
||||
GIT_SSL_NO_VERIFY=true git push origin main
|
||||
|
||||
## FLUX DE DÉPLOIEMENT STATUS-MONITOR
|
||||
|
||||
L'ordre est critique pour éviter les déploiements de vieilles versions :
|
||||
|
||||
```
|
||||
IDE (Windows) ──copy──> WSL (~/homelab-config) ──scp──> CT200/CT100 (192.168.0.100 bastion) ──scp──> CT201 (192.168.0.201 status-monitor)
|
||||
```
|
||||
|
||||
### Commande automatique
|
||||
```bash
|
||||
wsl bash ~/homelab-config/status-monitor/deploy.sh
|
||||
```
|
||||
|
||||
### Commande manuelle (si deploy.sh ne fonctionne pas)
|
||||
```bash
|
||||
# 1. IDE -> WSL
|
||||
cp /mnt/c/Users/theo/homelab_ia/homelab-config/status-monitor/app.py ~/homelab-config/status-monitor/app.py
|
||||
|
||||
# 2. WSL -> CT201 (rebond via CT200/CT100)
|
||||
scp -J root@192.168.0.100 -i ~/.ssh/id_ed25519 ~/homelab-config/status-monitor/app.py root@192.168.0.201:/tmp/app.py
|
||||
|
||||
# 3. Installation sur CT201
|
||||
ssh -J root@192.168.0.100 -i ~/.ssh/id_ed25519 root@192.168.0.201 'mv /tmp/app.py /opt/status-monitor/app.py && systemctl restart status-monitor'
|
||||
```
|
||||
|
||||
## Sources de vérité
|
||||
- Dépôt Git : https://git.peis.fr/VisualPCI/homelab-config
|
||||
- Clone local : ~/homelab-config (WSL)
|
||||
- Backup local : A déplacer par Theo
|
||||
|
||||
## ERREURS À ÉVITER
|
||||
- Modifier directement C:/Users/theo/.vibe/Proxmox/inventair/*
|
||||
- Oublier de faire git pull avant modification
|
||||
- Oublier de pusher après modification
|
||||
- Travailler depuis plusieurs emplacements
|
||||
|
||||
## WORKFLOW STANDARD
|
||||
1. Recevoir la demande
|
||||
2. cd ~/homelab-config && git pull
|
||||
3. Modifier les fichiers dans ~/homelab-config
|
||||
4. Tester/valider
|
||||
5. git add . && git commit -m "..." && git push
|
||||
6. Confirmer à l'utilisateur
|
||||
|
||||
---
|
||||
Créé par : Theo
|
||||
Pour : Mistral Vibe et autres agents
|
||||
|
||||
+16
-29
@@ -1,40 +1,27 @@
|
||||
#!/bin/bash
|
||||
# Script de déploiement DevOps pour status-monitor
|
||||
# Flux: IDE (Windows) -> WSL -> CT200/CT100 (bastion 192.168.0.100) -> CT201 (192.168.0.201)
|
||||
# Utilisation: wsl bash ~/homelab-config/status-monitor/deploy.sh
|
||||
|
||||
set -e
|
||||
|
||||
echo "[DEPLOY] Début du déploiement depuis Git..."
|
||||
WSL_REPO="$HOME/homelab-config"
|
||||
IDE_REPO="/mnt/c/Users/theo/homelab_ia/homelab-config"
|
||||
|
||||
# Se connecte à CT201 via rebond CT200 et déploye
|
||||
ssh -J root@192.168.0.100 root@192.168.0.201 << 'ENDSSH'
|
||||
cd /opt/status-monitor
|
||||
|
||||
echo "[DEPLOY] Mise à jour depuis Git..."
|
||||
if [ ! -d "homelab-config" ]; then
|
||||
git clone https://VisualPCI:3N14E7GWVSgi3K@git.peis.fr/VisualPCI/homelab-config.git
|
||||
echo "[DEPLOY] Dépôt cloné"
|
||||
else
|
||||
cd homelab-config
|
||||
git pull
|
||||
echo "[DEPLOY] Dépôt mis à jour"
|
||||
cd ..
|
||||
# Etape 1: Synchroniser IDE (Windows) -> WSL
|
||||
if [ -d "$IDE_REPO" ] && [ -d "$WSL_REPO" ]; then
|
||||
echo "[DEPLOY] Synchronisation IDE -> WSL..."
|
||||
cp "$IDE_REPO/status-monitor/app.py" "$WSL_REPO/status-monitor/app.py"
|
||||
sed -i 's/\r$//' "$WSL_REPO/status-monitor/app.py"
|
||||
echo "[DEPLOY] OK - Source copied IDE -> WSL"
|
||||
fi
|
||||
|
||||
echo "[DEPLOY] Copie des fichiers..."
|
||||
cp -f homelab-config/status-monitor/app.py .
|
||||
# Etape 2: Deploiement WSL -> CT201 via CT200/CT100 (ProxyJump)
|
||||
echo "[DEPLOY] Transfert WSL -> CT201 via CT200/CT100..."
|
||||
scp -J root@192.168.0.100 -i ~/.ssh/id_ed25519 "$WSL_REPO/status-monitor/app.py" root@192.168.0.201:/tmp/app.py
|
||||
|
||||
# Copier le service systemd si présent
|
||||
if [ -f "homelab-config/status-monitor/status-monitor.service" ]; then
|
||||
cp -f homelab-config/status-monitor/status-monitor.service /etc/systemd/system/
|
||||
systemctl daemon-reload
|
||||
echo "[DEPLOY] Service systemd mis à jour"
|
||||
fi
|
||||
# Etape 3: Installation et redemarrage sur CT201
|
||||
echo "[DEPLOY] Installation sur CT201..."
|
||||
ssh -J root@192.168.0.100 -i ~/.ssh/id_ed25519 root@192.168.0.201 "mv /tmp/app.py /opt/status-monitor/app.py && systemctl restart status-monitor && echo '[DEPLOY] OK - CT201 updated'"
|
||||
|
||||
echo "[DEPLOY] Redémarrage du service..."
|
||||
systemctl restart status-monitor
|
||||
|
||||
echo "[DEPLOY] ✅ Déploiement terminé !"
|
||||
ENDSSH
|
||||
|
||||
echo "[DEPLOY] Déploiement terminé avec succès !"
|
||||
echo "[DEPLOY] OK - All done: IDE -> WSL -> CT200/CT100 -> CT201"
|
||||
|
||||
Reference in New Issue
Block a user