4NK_env/IA_agents/prompts/prompt-deploy/scripts/nginx-config-symlink.sh

154 lines
4.4 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
# Script pour remplacer les configurations nginx par des liens symboliques
# vers les fichiers centralisés dans /home/debian/4NK_env/confs/nginx
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
ROOT_DIR="$(cd "$SCRIPT_DIR/../../../.." && pwd)"
NGINX_CONF_DIR="/home/debian/4NK_env/confs/nginx"
NGINX_ACTIVE_DIR="/etc/nginx/sites-available"
NGINX_ENABLED_DIR="/etc/nginx/sites-enabled"
echo "=========================================="
echo " Configuration Nginx - Liens Symboliques"
echo "=========================================="
# Vérifier que le répertoire de configuration centralisé existe
if [ ! -d "$NGINX_CONF_DIR" ]; then
echo "❌ Erreur: Le répertoire $NGINX_CONF_DIR n'existe pas"
exit 1
fi
echo "📁 Répertoire de configuration centralisé: $NGINX_CONF_DIR"
echo "📁 Répertoire nginx sites-available: $NGINX_ACTIVE_DIR"
echo "📁 Répertoire nginx sites-enabled: $NGINX_ENABLED_DIR"
# Fonction pour créer un lien symbolique
create_symlink() {
local source="$1"
local target="$2"
local description="$3"
echo "🔗 Création du lien: $description"
echo " Source: $source"
echo " Cible: $target"
# Supprimer le fichier/cible existant s'il existe
if [ -e "$target" ] || [ -L "$target" ]; then
echo " Suppression de l'ancien fichier/lien: $target"
sudo rm -f "$target"
fi
# Créer le lien symbolique
sudo ln -sf "$source" "$target"
if [ -L "$target" ]; then
echo " ✅ Lien créé avec succès"
else
echo " ❌ Erreur lors de la création du lien"
return 1
fi
}
echo ""
echo "🔧 Création des liens symboliques..."
# Lister les fichiers de configuration dans le répertoire centralisé
config_files=$(find "$NGINX_CONF_DIR" -name "*.conf" -type f)
if [ -z "$config_files" ]; then
echo "❌ Aucun fichier .conf trouvé dans $NGINX_CONF_DIR"
exit 1
fi
echo "📋 Fichiers de configuration trouvés:"
echo "$config_files" | while read -r file; do
echo " - $(basename "$file")"
done
echo ""
echo "🔗 Création des liens dans sites-available..."
# Créer les liens dans sites-available
echo "$config_files" | while read -r source_file; do
filename=$(basename "$source_file")
target_file="$NGINX_ACTIVE_DIR/$filename"
create_symlink "$source_file" "$target_file" "$filename"
done
echo ""
echo "📋 Configuration actuelle de nginx..."
# Lister les configurations actives (sites-available)
echo "📁 Fichiers dans sites-available:"
if [ -d "$NGINX_ACTIVE_DIR" ]; then
ls -la "$NGINX_ACTIVE_DIR" | grep -E "\.(conf|link)$" || echo " Aucun fichier .conf trouvé"
else
echo " ❌ Répertoire $NGINX_ACTIVE_DIR n'existe pas"
fi
# Lister les configurations activées (sites-enabled)
echo ""
echo "📁 Fichiers dans sites-enabled:"
if [ -d "$NGINX_ENABLED_DIR" ]; then
ls -la "$NGINX_ENABLED_DIR" | grep -E "\.(conf|link)$" || echo " Aucun fichier .conf activé"
else
echo " ❌ Répertoire $NGINX_ENABLED_DIR n'existe pas"
fi
echo ""
echo "🧪 Test de la configuration nginx..."
# Tester la configuration nginx
if sudo nginx -t; then
echo "✅ Configuration nginx valide"
echo ""
echo "🔄 Redémarrage de nginx..."
# Redémarrer nginx
if sudo systemctl reload nginx; then
echo "✅ Nginx rechargé avec succès"
else
echo "❌ Erreur lors du rechargement de nginx"
echo "🔄 Tentative de redémarrage complet..."
if sudo systemctl restart nginx; then
echo "✅ Nginx redémarré avec succès"
else
echo "❌ Erreur lors du redémarrage de nginx"
exit 1
fi
fi
echo ""
echo "📊 Statut de nginx:"
sudo systemctl status nginx --no-pager -l
else
echo "❌ Configuration nginx invalide"
echo "🔍 Détails de l'erreur:"
sudo nginx -t 2>&1 || true
exit 1
fi
echo ""
echo "=========================================="
echo "✅ Configuration nginx terminée avec succès"
echo "=========================================="
# Afficher un résumé des liens créés
echo ""
echo "📋 Résumé des liens créés:"
echo "$config_files" | while read -r source_file; do
filename=$(basename "$source_file")
target_file="$NGINX_ACTIVE_DIR/$filename"
if [ -L "$target_file" ]; then
echo "$filename -> $(readlink "$target_file")"
else
echo "$filename -> Lien non créé"
fi
done