Files
proxmox/scripts/fix-besu-installation.sh

45 lines
1.3 KiB
Bash
Raw Permalink Normal View History

#!/usr/bin/env bash
# Fix Besu installation on all nodes
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
source "$PROJECT_ROOT/config/ip-addresses.conf"
get_host_for_vmid() {
local vmid=$1
if [[ "$vmid" =~ ^(1505|1506|1507|1508)$ ]]; then
echo "${PROXMOX_HOST_ML110}"
elif [[ "$vmid" =~ ^(2500|2501|2502|2503|2504|2505)$ ]]; then
echo "${PROXMOX_HOST_R630_01}"
else
echo "${PROXMOX_HOST_R630_01}"
fi
}
fix_besu() {
local vmid=$1
local host=$(get_host_for_vmid $vmid)
ssh -o StrictHostKeyChecking=no root@${host} "pct exec $vmid -- bash -c '
cd /opt
if [ -f besu-23.10.3.tar.gz ] && [ ! -d besu-23.10.3 ]; then
echo \"Extracting Besu for $vmid...\"
tar -xzf besu-23.10.3.tar.gz
fi
if [ -d besu-23.10.3 ] && [ ! -L besu ]; then
ln -sf besu-23.10.3 besu
fi
if [ -d besu-23.10.3 ]; then
chown -R besu:besu besu-23.10.3 besu 2>/dev/null || true
echo \"Besu fixed for $vmid\"
fi
'" 2>&1 | grep -E "(Extracting|fixed)" || true
}
for vmid in 1505 1506 2500 2501 2502 1507 1508 2503 2504 2505; do
fix_besu $vmid &
done
wait
echo "Besu installation fixed on all nodes"