#!/bin/bash set -e LOGFILE="/tmp/oglog-install.log" exec > >(tee -a "$LOGFILE") 2>&1 log() { echo "$1" | tee -a "$LOGFILE" } log "Inicio de instalación: $(date)" # Tamaño inicial del disco log "Tamaño inicial del disco:" df -h / | tee -a "$LOGFILE" # Carga inicial de CPU log "Carga inicial de CPU:" uptime | tee -a "$LOGFILE" # Inicio del cronómetro SECONDS=0 # Montar servidor NFS NFS_SERVER="ognartefactos.evlt.uma.es" NFS_PATH="/" LOCAL_MOUNT="/mnt" if ! mountpoint -q "$LOCAL_MOUNT"; then mkdir -p "$LOCAL_MOUNT" mount -t nfs "$NFS_SERVER:$NFS_PATH" "$LOCAL_MOUNT" fi # Cargar variables desde el archivo .env ENV_FILE="../.env" if [ ! -f "$ENV_FILE" ]; then echo "ERROR: No se encontró el archivo .env" exit 1 fi export $(grep -v '^#' "$ENV_FILE" | xargs) # Comprobar variables requeridas required_vars=("OGLOG_IP" "OGCORE_IP" "OPENSEARCH_INITIAL_ADMIN_PASSWORD") for var in "${required_vars[@]}"; do if [[ -z "${!var}" ]]; then echo "ERROR: La variable de entorno $var debe estar definida en el archivo .env." exit 1 fi done # Ejemplo de uso echo "OGLOG se instalará en: $OGLOG_IP" echo "Base de datos OGCORE en: $OGCORE_IP" # Validar la contraseña if [[ ${#OPENSEARCH_INITIAL_ADMIN_PASSWORD} -lt 12 || \ ! "$OPENSEARCH_INITIAL_ADMIN_PASSWORD" =~ [A-Z] || \ ! "$OPENSEARCH_INITIAL_ADMIN_PASSWORD" =~ [0-9] || \ ! "$OPENSEARCH_INITIAL_ADMIN_PASSWORD" =~ [^a-zA-Z0-9] ]]; then log "ERROR: La contraseña OPENSEARCH_INITIAL_ADMIN_PASSWORD no cumple los requisitos." exit 1 fi # Actualizar /etc/hosts cat >> /etc/hosts <