#!/bin/bash # --- CONFIGURACIÓN GLOBAL --- BINARY_NAME="siax_monitor" # ← Cambié esto para que coincida con Cargo.toml TARGET="x86_64-unknown-linux-gnu" # ← Cambié a gnu en lugar de musl echo "📦 Compilando binario para Linux ($TARGET)..." cargo build --release --target $TARGET if [ $? -ne 0 ]; then echo "❌ Error en la compilación." exit 1 fi # --- FUNCIÓN MAESTRA DE DESPLIEGUE --- # Parámetros: IP, USUARIO, RUTA_DESTINO deploy_to_server() { local IP=$1 local USER=$2 local DEST_PATH=$3 echo "------------------------------------------------" echo "📡 Desplegando en: $USER@$IP:$DEST_PATH" # 1. Crear directorio y asegurar permisos ssh $USER@$IP "mkdir -p $DEST_PATH" # 2. Subir binario scp target/$TARGET/release/$BINARY_NAME $USER@$IP:$DEST_PATH/ # 3. Hacer ejecutable ssh $USER@$IP "chmod +x $DEST_PATH/$BINARY_NAME" # 4. Configurar Systemd echo "⚙️ Configurando servicio Systemd para $USER..." ssh $USER@$IP "sudo bash -c 'cat < /etc/systemd/system/siax_monitor.service [Unit] Description=SIAX Monitor Agent - $IP After=network.target [Service] Type=simple User=$USER WorkingDirectory=$DEST_PATH ExecStart=$DEST_PATH/$BINARY_NAME Restart=always RestartSec=10 [Install] WantedBy=multi-user.target EOF'" # 5. Reiniciar servicio ssh $USER@$IP "sudo systemctl daemon-reload && sudo systemctl enable siax_monitor && sudo systemctl restart siax_monitor" echo "✅ Servidor $IP configurado correctamente." } # --- LISTA PERSONALIZADA DE SERVIDORES --- #deploy_to_server "192.168.1.140" "root" "/root/app" deploy_to_server "192.168.10.145" "root" "/root/app" deploy_to_server "192.168.10.150" "pablinux" "/home/pablinux/app" deploy_to_server "192.168.10.160" "user_apps" "/home/user_apps/apps" echo "------------------------------------------------" echo "🎉 ¡Despliegue masivo completado!"