Amélioration du script check-config.sh pour gérer automatiquement le clonage et la mise à jour des repositories NationsGlory_ServeurBuild_Red et WebNationsGlory_ServeurBuild_Red. Nouveautés: - Clone automatique si repositories absents - Pull automatique si mises à jour disponibles - Détection de conflits et modifications locales - Configuration via repos.conf (template fourni) - Documentation dans GIT_SYNC.md Permet un déploiement simplifié sur nouvelle machine et des mises à jour automatisées en production.
5.2 KiB
🔄 Synchronisation Git Automatique
Le script check-config.sh a été amélioré pour gérer automatiquement la synchronisation des repositories Git.
🎯 Fonctionnalités
1. Clonage automatique
Si les dossiers NationsGlory_ServeurBuild_Red ou WebNationsGlory_ServeurBuild_Red n'existent pas, le script les clone automatiquement depuis les URLs configurées.
2. Mise à jour automatique
Si les repositories existent déjà, le script :
- ✅ Vérifie si des mises à jour sont disponibles
- ✅ Met à jour automatiquement si possible
- ⚠️ Vous avertit si vous avez des modifications locales
3. Détection de conflits
Le script détecte :
- Modifications locales non commitées
- Différences entre la version locale et distante
- Problèmes de connexion Git
⚙️ Configuration
Fichier repos.conf
Créez ce fichier pour configurer les URLs de vos repositories :
cp repos.conf.example repos.conf
nano repos.conf
Exemples de configuration
Git sur serveur local (SSH) :
MC_SERVER_REPO="git@192.168.1.195:/srv/git/NationsGlory_ServeurBuild_Red.git"
WEB_ADMIN_REPO="git@192.168.1.195:/srv/git/WebNationsGlory_ServeurBuild_Red.git"
DEFAULT_BRANCH="main"
GitHub (SSH) :
MC_SERVER_REPO="git@github.com:username/NationsGlory_ServeurBuild_Red.git"
WEB_ADMIN_REPO="git@github.com:username/WebNationsGlory_ServeurBuild_Red.git"
DEFAULT_BRANCH="main"
GitHub (HTTPS) :
MC_SERVER_REPO="https://github.com/username/NationsGlory_ServeurBuild_Red.git"
WEB_ADMIN_REPO="https://github.com/username/WebNationsGlory_ServeurBuild_Red.git"
DEFAULT_BRANCH="main"
🚀 Utilisation
Premier déploiement
# 1. Configurer les URLs Git
cp repos.conf.example repos.conf
nano repos.conf
# 2. Cloner et vérifier
./check-config.sh
# 3. Déployer
./deploy.sh
Mise à jour
# Vérifier et mettre à jour
./check-config.sh
# Si des mises à jour sont disponibles
./stop.sh
./deploy.sh
📋 Comportement du script
Cas 1 : Repository n'existe pas
[→] Clonage de NationsGlory Serveur MC depuis git@...
[✓] NationsGlory Serveur MC cloné avec succès
Cas 2 : Repository à jour
[INFO] Repository NationsGlory Serveur MC existe, vérification des mises à jour...
[✓] NationsGlory Serveur MC est à jour
Cas 3 : Mise à jour disponible
[INFO] Repository NationsGlory Serveur MC existe, vérification des mises à jour...
[→] Mise à jour de NationsGlory Serveur MC disponible...
[→] Mise à jour de NationsGlory Serveur MC...
[✓] NationsGlory Serveur MC mis à jour avec succès
Cas 4 : Modifications locales
[INFO] Repository NationsGlory Serveur MC existe, vérification des mises à jour...
[→] Mise à jour de NationsGlory Serveur MC disponible...
[⚠] NationsGlory Serveur MC a des modifications locales non commitées
[INFO] Pour mettre à jour, committez ou annulez vos modifications
🔐 Configuration SSH
Pour un serveur Git local
-
Générer une clé SSH (si vous n'en avez pas) :
ssh-keygen -t ed25519 -C "votre@email.com" -
Copier la clé sur le serveur Git :
ssh-copy-id user@192.168.1.195 -
Tester la connexion :
ssh git@192.168.1.195
Pour GitHub/GitLab
-
Ajouter votre clé SSH à votre compte GitHub/GitLab
-
Tester la connexion :
ssh -T git@github.com # ou ssh -T git@gitlab.com
🐛 Dépannage
Erreur : "Échec du clonage"
Causes possibles :
- URL Git incorrecte dans
repos.conf - Problème d'authentification SSH
- Serveur Git inaccessible
Solutions :
# Vérifier l'URL
cat repos.conf
# Tester la connexion SSH
ssh git@192.168.1.195
# Cloner manuellement pour voir l'erreur
git clone <URL_DU_REPO>
Avertissement : "Modifications locales non commitées"
Solution 1 : Commiter les modifications
cd NationsGlory_ServeurBuild_Red
git add .
git commit -m "Mes modifications"
git push
Solution 2 : Annuler les modifications
cd NationsGlory_ServeurBuild_Red
git reset --hard origin/main
Erreur : "MC_SERVER_REPO non défini"
Solution :
# Créer repos.conf depuis le template
cp repos.conf.example repos.conf
nano repos.conf
📚 Workflow recommandé
Développement local
- Faites vos modifications dans les sous-repositories
- Testez localement
- Committez et pushez vos changements
- Sur le serveur de production, exécutez
./check-config.shpour mettre à jour
Production
- Exécutez régulièrement
./check-config.shpour vérifier les mises à jour - Si des mises à jour sont détectées :
./stop.sh ./check-config.sh # Met à jour ./deploy.sh # Redémarre
🎓 Avantages
✅ Automatisation : Plus besoin de cloner/pull manuellement
✅ Détection de conflits : Avertit avant d'écraser des modifications
✅ Portable : Fonctionne sur n'importe quelle machine
✅ Flexible : Supporte Git local, GitHub, GitLab, etc.
✅ Sécurité : Vérifie avant de modifier
Note : Le fichier repos.conf n'est pas versionné (dans .gitignore) pour permettre des configurations différentes sur chaque machine.