Files
SIAX-MONITOR/desplegar_agent.sh
pablinux 8822e9e6b5 feat: Mejorar estructura de monitored_apps.json con metadata completa
- Añadir campos al modelo MonitoredApp:
  * service_name: Nombre del servicio systemd
  * path: WorkingDirectory de la aplicación
  * entry_point: Archivo de entrada (server.js, app.js, etc.)
  * node_bin: Ruta completa al binario de node/python
  * mode: Modo de ejecución (production, development, test)
  * service_file_path: Ruta al archivo .service de systemd
  * registered_at: Timestamp de registro (ISO 8601)

- Actualizar discovery.rs para extraer toda la información:
  * Parsear ExecStart para obtener node_bin y entry_point
  * Extraer NODE_ENV para determinar el modo
  * Guardar ruta completa al archivo .service
  * Usar add_app_full() con información completa

- Integrar ConfigManager en AppManager:
  * Guardar automáticamente en monitored_apps.json al registrar apps
  * Eliminar del JSON al desregistrar apps
  * Extraer metadata desde ServiceConfig (puerto, entry_point, mode, etc.)

- Mantener retrocompatibilidad con JSON antiguo mediante campos deprecated
- Todos los nuevos campos usan #[serde(default)] para evitar errores de deserialización
2026-01-18 03:26:42 -05:00

52 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
# --- CONFIGURACIÓN ---
BINARY_NAME="siax_monitor"
TARGET="x86_64-unknown-linux-gnu"
LOCAL_PATH="target/$TARGET/release/$BINARY_NAME"
# 1. Preguntar método de transferencia
echo "Selecciona el método de transferencia:"
select METODO in "scp" "rsync"; do
case $METODO in
scp|rsync) break ;;
*) echo "Opción inválida, elige 1 o 2." ;;
esac
done
# 2. Compilar
echo "📦 Compilando..."
cargo build --release --target $TARGET
if [ $? -ne 0 ]; then echo "❌ Error en compilación"; exit 1; fi
# --- FUNCIÓN DE SUBIDA ---
upload_file() {
local IP=$1
local USER=$2
local DEST=$3
echo "🚀 Subiendo a $USER@$IP vía $METODO..."
if [ "$METODO" = "scp" ]; then
scp "$LOCAL_PATH" "$USER@$IP:$DEST/"
else
# rsync -avz: a (archivo/permisos), v (visual), z (comprimido)
rsync -avz "$LOCAL_PATH" "$USER@$IP:$DEST/"
fi
if [ $? -eq 0 ]; then
echo "$IP: Completado."
else
echo "$IP: Falló la subida."
fi
}
# --- LISTA DE SERVIDORES ---
# Formato: upload_file "IP" "USUARIO" "RUTA_DESTINO"
upload_file "192.168.10.145" "root" "/root/app"
upload_file "192.168.10.150" "pablinux" "/home/pablinux/app"
upload_file "192.168.10.160" "user_apps" "/home/user_apps/apps"
echo "------------------------------------------------"
echo "Done!"