docs(AGENT_devops): Mise à jour avec le workflow DevOps réel utilisé pour pull, push, modifier CT201, commit et deployer
- Ajout de la section "Workflow complet utilisé pour la correction du 20/07/2026" - Documentation des commandes SSH avec rebond (-J root@192.168.0.100) - Documentation de GIT_SSL_NO_VERIFY=true pour contourner les problèmes de certificat - Documentation de l'authentification Git (VisualPCI/3N14E7GWVSgi3K) - Mise à jour de l'historique des modifications Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
+85
-8
@@ -7,13 +7,12 @@
|
||||
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)
|
||||
- j'ai Ubuntu en WSL 2. Je vais démarrer WSL et travailler dedans. Je vais me connecter à la distribution Ubuntu.
|
||||
- **JAMAIS** modifier les fichiers locaux sur `C:\Users\theo\.vibe\Proxmox\inventair\`
|
||||
|
||||
2. **Avant TOUTE action** :
|
||||
```bash
|
||||
cd ~/homelab-config
|
||||
git pull
|
||||
GIT_SSL_NO_VERIFY=true git pull origin main
|
||||
```
|
||||
|
||||
3. **Après TOUTE modification** :
|
||||
@@ -23,6 +22,11 @@
|
||||
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
|
||||
@@ -129,19 +133,31 @@ cd ~/homelab-config && git add . && git commit -m "message" && git push
|
||||
cd ~/homelab-config && git log --oneline --graph
|
||||
```
|
||||
|
||||
### SSH CT201
|
||||
### SSH CT201 (via rebond CT200)
|
||||
```bash
|
||||
# Se connecter
|
||||
ssh root@192.168.0.201
|
||||
# Se connecter (CT200 est le bastion)
|
||||
ssh -J root@192.168.0.100 root@192.168.0.201
|
||||
|
||||
# Voir les logs du service
|
||||
ssh root@192.168.0.201 "journalctl -u status-monitor -f"
|
||||
ssh -J root@192.168.0.100 root@192.168.0.201 "journalctl -u status-monitor -f"
|
||||
|
||||
# État du service
|
||||
ssh root@192.168.0.201 "systemctl status status-monitor"
|
||||
ssh -J root@192.168.0.100 root@192.168.0.201 "systemctl status status-monitor"
|
||||
|
||||
# Redémarrer
|
||||
ssh root@192.168.0.201 "systemctl restart status-monitor"
|
||||
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
|
||||
@@ -149,6 +165,64 @@ ssh root@192.168.0.201 "systemctl restart status-monitor"
|
||||
- **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
|
||||
@@ -176,11 +250,14 @@ ssh root@192.168.0.201 "systemctl restart status-monitor"
|
||||
|
||||
| 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*
|
||||
|
||||
Reference in New Issue
Block a user