v1.0 - Version stable: multi-PC, détection UI-DETR-1, 3 modes exécution
- Frontend v4 accessible sur réseau local (192.168.1.40) - Ports ouverts: 3002 (frontend), 5001 (backend), 5004 (dashboard) - Ollama GPU fonctionnel - Self-healing interactif - Dashboard confiance Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
138
sync_encryption_password.sh
Executable file
138
sync_encryption_password.sh
Executable file
@@ -0,0 +1,138 @@
|
||||
#!/bin/bash
|
||||
# Script de synchronisation du mot de passe de chiffrement
|
||||
# entre l'agent (.env.local) et le serveur (/etc/rpa_vision_v3/rpa_vision_v3.env)
|
||||
|
||||
set -e
|
||||
|
||||
echo "🔐 RPA Vision V3 - Synchronisation Mot de Passe Chiffrement"
|
||||
echo "============================================================"
|
||||
echo ""
|
||||
|
||||
# Vérifier qu'on est bien root ou avec sudo
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "❌ Ce script doit être exécuté avec sudo"
|
||||
echo "Usage: sudo bash sync_encryption_password.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Fichiers
|
||||
DEV_ENV="/home/dom/ai/rpa_vision_v3/.env.local"
|
||||
PROD_ENV="/etc/rpa_vision_v3/rpa_vision_v3.env"
|
||||
|
||||
echo "📂 Fichiers concernés:"
|
||||
echo " - Agent (dev): $DEV_ENV"
|
||||
echo " - Serveur (prod): $PROD_ENV"
|
||||
echo ""
|
||||
|
||||
# Lire le mot de passe de l'agent
|
||||
echo "🔍 Lecture du mot de passe actuel de l'agent..."
|
||||
AGENT_PASSWORD=$(grep "^ENCRYPTION_PASSWORD=" "$DEV_ENV" | cut -d'=' -f2)
|
||||
|
||||
if [ -z "$AGENT_PASSWORD" ]; then
|
||||
echo "❌ ENCRYPTION_PASSWORD non trouvé dans $DEV_ENV"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo " Agent utilise: ${AGENT_PASSWORD:0:20}..."
|
||||
echo ""
|
||||
|
||||
# Lire le mot de passe du serveur
|
||||
echo "🔍 Lecture du mot de passe actuel du serveur..."
|
||||
if [ -f "$PROD_ENV" ]; then
|
||||
SERVER_PASSWORD=$(grep "^ENCRYPTION_PASSWORD=" "$PROD_ENV" 2>/dev/null | cut -d'=' -f2 || echo "")
|
||||
if [ -z "$SERVER_PASSWORD" ]; then
|
||||
echo " ⚠️ ENCRYPTION_PASSWORD non défini dans le fichier serveur"
|
||||
else
|
||||
echo " Serveur utilise: ${SERVER_PASSWORD:0:20}..."
|
||||
fi
|
||||
else
|
||||
echo " ❌ Fichier $PROD_ENV introuvable"
|
||||
exit 1
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# Comparer les mots de passe
|
||||
if [ "$AGENT_PASSWORD" = "$SERVER_PASSWORD" ]; then
|
||||
echo "✅ Les mots de passe sont déjà identiques!"
|
||||
echo ""
|
||||
echo "Pas d'action nécessaire."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Créer une sauvegarde
|
||||
echo "💾 Création d'une sauvegarde..."
|
||||
BACKUP_FILE="${PROD_ENV}.backup_$(date +%Y%m%d_%H%M%S)"
|
||||
cp "$PROD_ENV" "$BACKUP_FILE"
|
||||
echo " ✓ Sauvegarde: $BACKUP_FILE"
|
||||
echo ""
|
||||
|
||||
# Mettre à jour le fichier serveur
|
||||
echo "🔄 Synchronisation du mot de passe..."
|
||||
TEMP_FILE=$(mktemp)
|
||||
|
||||
# Si ENCRYPTION_PASSWORD existe déjà, le remplacer, sinon l'ajouter
|
||||
if grep -q "^ENCRYPTION_PASSWORD=" "$PROD_ENV"; then
|
||||
# Remplacer la ligne existante
|
||||
while IFS= read -r line; do
|
||||
if [[ $line =~ ^ENCRYPTION_PASSWORD= ]]; then
|
||||
echo "ENCRYPTION_PASSWORD=$AGENT_PASSWORD"
|
||||
else
|
||||
echo "$line"
|
||||
fi
|
||||
done < "$PROD_ENV" > "$TEMP_FILE"
|
||||
else
|
||||
# Ajouter la ligne
|
||||
cat "$PROD_ENV" > "$TEMP_FILE"
|
||||
echo "" >> "$TEMP_FILE"
|
||||
echo "# Mot de passe de chiffrement (synchronisé avec agent)" >> "$TEMP_FILE"
|
||||
echo "ENCRYPTION_PASSWORD=$AGENT_PASSWORD" >> "$TEMP_FILE"
|
||||
fi
|
||||
|
||||
# Remplacer le fichier original
|
||||
mv "$TEMP_FILE" "$PROD_ENV"
|
||||
|
||||
# Restaurer les permissions
|
||||
chown root:rpa "$PROD_ENV"
|
||||
chmod 640 "$PROD_ENV"
|
||||
|
||||
echo " ✓ Mot de passe synchronisé"
|
||||
echo ""
|
||||
|
||||
# Redémarrer les services
|
||||
echo "🔄 Redémarrage des services..."
|
||||
systemctl restart rpa-vision-v3-api.service
|
||||
systemctl restart rpa-vision-v3-worker.service
|
||||
|
||||
echo " ✓ Services redémarrés"
|
||||
echo ""
|
||||
|
||||
# Attendre que les services démarrent
|
||||
echo "⏳ Attente du démarrage (3 secondes)..."
|
||||
sleep 3
|
||||
echo ""
|
||||
|
||||
# Vérifier le statut
|
||||
echo "📊 Statut des services:"
|
||||
for service in rpa-vision-v3-api rpa-vision-v3-worker; do
|
||||
status=$(systemctl is-active $service 2>/dev/null || echo "failed")
|
||||
if [ "$status" = "active" ]; then
|
||||
echo " ✅ $service: $status"
|
||||
else
|
||||
echo " ❌ $service: $status"
|
||||
fi
|
||||
done
|
||||
echo ""
|
||||
|
||||
echo "✅ SYNCHRONISATION TERMINÉE"
|
||||
echo ""
|
||||
echo "📝 Vérification:"
|
||||
echo " Agent: ${AGENT_PASSWORD:0:20}..."
|
||||
echo " Serveur: ${AGENT_PASSWORD:0:20}..."
|
||||
echo ""
|
||||
echo "🎯 Prochaines étapes:"
|
||||
echo " 1. Tester l'agent: cd agent_v0 && ./run.sh"
|
||||
echo " 2. Vérifier l'upload: ls -lht /opt/rpa_vision_v3/data/training/sessions/"
|
||||
echo ""
|
||||
echo "💾 En cas de problème, restaurer:"
|
||||
echo " sudo cp $BACKUP_FILE $PROD_ENV"
|
||||
echo " sudo systemctl restart rpa-vision-v3-*.service"
|
||||
Reference in New Issue
Block a user