Files
dtic-DIIAA/automatizacion/alta_nodo.sh
T

62 lines
2.1 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# Script: alta_nodo.sh
# Uso: ./automatizacion/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: ./automatizacion/alta_nodo.sh <IP> <HOSTNAME> [USUARIO]"
echo "Ejemplo: ./automatizacion/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