feat: Grid Expansion (Batch 4), Security Hardening, and ADN Optimization
This commit is contained in:
Executable
+61
@@ -0,0 +1,61 @@
|
||||
#!/bin/bash
|
||||
# Script: alta_nodo.sh
|
||||
# Uso: ./scripts/alta_nodo.sh <IP> <HOSTNAME> [USUARIO]
|
||||
# Descripción: Automatiza la configuración SSH local y el despliegue de claves al nuevo nodo.
|
||||
|
||||
IP=$1
|
||||
NAME=$2
|
||||
USER_SSH=${3:-rmonla} # Por defecto usa 'rmonla' si no se especifica
|
||||
|
||||
# Validar argumentos básicos
|
||||
if [ -z "$IP" ] || [ -z "$NAME" ]; then
|
||||
echo "❌ Error: Faltan argumentos."
|
||||
echo "Uso correcto: ./scripts/alta_nodo.sh <IP> <HOSTNAME> [USUARIO]"
|
||||
echo "Ejemplo: ./scripts/alta_nodo.sh 10.0.10.205 srv-pmox4 rmonla"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "--- Iniciando Alta de Nodo: $NAME ($IP) con Usuario: $USER_SSH ---"
|
||||
|
||||
# 1. Configurar SSH local (~/.ssh/config)
|
||||
if grep -q "^Host $NAME$" ~/.ssh/config; then
|
||||
echo "ℹ️ Host '$NAME' ya existe en ~/.ssh/config (Se asume configuración correcta)."
|
||||
else
|
||||
echo "🔧 Agregando '$NAME' a ~/.ssh/config..."
|
||||
cat >> ~/.ssh/config <<EOF
|
||||
|
||||
Host $NAME
|
||||
HostName $IP
|
||||
User $USER_SSH
|
||||
StrictHostKeyChecking no
|
||||
EOF
|
||||
fi
|
||||
|
||||
# 2. Verificar Conectividad
|
||||
echo "📡 Verificando conexión (Ping)..."
|
||||
ping -c 2 $IP > /dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "⚠️ Alerta: No hay ping a $IP. Verifica la red."
|
||||
else
|
||||
echo "✅ Ping exitoso."
|
||||
fi
|
||||
|
||||
# 3. Intentar instalación automática de clave (ssh-copy-id)
|
||||
echo "🔑 Intentando instalar clave SSH automáticamente en $USER_SSH@$IP..."
|
||||
ssh-copy-id -o ConnectTimeout=5 -i ~/.ssh/id_rsa.pub $USER_SSH@$IP 2>/dev/null
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "✅ Clave instalada exitosamente via ssh-copy-id."
|
||||
echo "🚀 Probando conexión SSH..."
|
||||
ssh -o ConnectTimeout=5 $NAME "uptime"
|
||||
else
|
||||
echo "⚠️ No se pudo copiar la clave automáticamente."
|
||||
echo "Probablemente necesites ingresar la contraseña de '$USER_SSH' si te la pide."
|
||||
echo ""
|
||||
echo "📋 SI FALLA, EJECUTA ESTO MANUALMENTE EN LA TERMINAL DEL NODO ($IP) con tu usuario:"
|
||||
echo "-----------------------------------------------------------"
|
||||
# Generamos el comando dinámicamente con la clave actual
|
||||
PUBKEY=$(cat ~/.ssh/id_rsa.pub)
|
||||
echo "mkdir -p ~/.ssh && echo \"$PUBKEY\" >> ~/.ssh/authorized_keys"
|
||||
echo "-----------------------------------------------------------"
|
||||
fi
|
||||
Reference in New Issue
Block a user