Files
proxmox/scripts/collect-all-enodes.sh

85 lines
3.0 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
# Collect enode addresses from all new Besu nodes
set -euo pipefail
# Load IP configuration
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
source "${PROJECT_ROOT}/config/ip-addresses.conf" 2>/dev/null || true
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
BLUE='\033[0;34m'
GREEN='\033[0;32m'
NC='\033[0m'
log() { echo -e "${BLUE}[$(date +'%H:%M:%S')]${NC} $1"; }
success() { echo -e "${GREEN}[✓]${NC} $1"; }
collect_enode() {
local vmid=$1
local ip=$2
local hostname=$3
log "Collecting enode from $vmid ($hostname)..."
local enode=$(pct exec $vmid -- bash -c '
if [ -f /data/besu/NODE_ID ]; then
NODE_ID=$(cat /data/besu/NODE_ID)
echo "enode://${NODE_ID}@'"$ip"':30303"
else
echo "PENDING"
fi
' 2>/dev/null || echo "ERROR")
echo "$vmid|$hostname|$ip|$enode"
}
log "==================================="
log "Collecting Enodes from All New Nodes"
log "==================================="
echo ""
ENODE_DIR=$(mktemp -d)
log "ALLTRA nodes..."
collect_enode 1505 "${IP_SERVICE_21:-${IP_SERVICE_21:-${IP_SERVICE_21:-${IP_SERVICE_21:-${IP_SERVICE_21:-192.168.11.21}}}}}3" "besu-sentry-alltra-1" > "$ENODE_DIR/1505.txt" &
collect_enode 1506 "${IP_SERVICE_21:-${IP_SERVICE_21:-${IP_SERVICE_21:-${IP_SERVICE_21:-${IP_SERVICE_21:-192.168.11.21}}}}}4" "besu-sentry-alltra-2" > "$ENODE_DIR/1506.txt" &
collect_enode 2500 "${IP_SERVICE_172:-${IP_SERVICE_172:-192.168.11.172}}" "besu-rpc-alltra-1" > "$ENODE_DIR/2500.txt" &
collect_enode 2501 "${IP_SERVICE_173:-${IP_SERVICE_173:-192.168.11.173}}" "besu-rpc-alltra-2" > "$ENODE_DIR/2501.txt" &
collect_enode 2502 "${IP_SERVICE_174:-${IP_SERVICE_174:-192.168.11.174}}" "besu-rpc-alltra-3" > "$ENODE_DIR/2502.txt" &
log "HYBX nodes..."
collect_enode 1507 "${IP_RPC_244:-${IP_RPC_244:-${IP_RPC_244:-192.168.11.244}}}" "besu-sentry-hybx-1" > "$ENODE_DIR/1507.txt" &
collect_enode 1508 "${IP_RPC_245:-${IP_RPC_245:-${IP_RPC_245:-192.168.11.245}}}" "besu-sentry-hybx-2" > "$ENODE_DIR/1508.txt" &
collect_enode 2503 "${IP_RPC_246:-${IP_RPC_246:-${IP_RPC_246:-192.168.11.246}}}" "besu-rpc-hybx-1" > "$ENODE_DIR/2503.txt" &
collect_enode 2504 "${IP_RPC_247:-${IP_RPC_247:-${IP_RPC_247:-192.168.11.247}}}" "besu-rpc-hybx-2" > "$ENODE_DIR/2504.txt" &
collect_enode 2505 "${IP_RPC_248:-${IP_RPC_248:-${IP_RPC_248:-192.168.11.248}}}" "besu-rpc-hybx-3" > "$ENODE_DIR/2505.txt" &
echo ""
log "Waiting for collections..."
wait
echo ""
echo "=========================================="
for file in "$ENODE_DIR"/*.txt; do
cat "$file"
done
ENODE_LIST="$PROJECT_ROOT/ENODE_COLLECTION_$(date +%Y%m%d_%H%M%S).txt"
{
echo "# Enode Collection Report"
echo "# Generated: $(date)"
echo "# VMID | Hostname | IP | Enode"
echo "=========================================="
for file in "$ENODE_DIR"/*.txt; do
cat "$file"
done
} > "$ENODE_LIST"
success "Enode collection saved to: $ENODE_LIST"
rm -rf "$ENODE_DIR"