Files
proxmox/scripts/run-fixes-on-proxmox.sh
defiQUG fbda1b4beb
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
docs: Ledger Live integration, contract deploy learnings, NEXT_STEPS updates
- ADD_CHAIN138_TO_LEDGER_LIVE: Ledger form done; public code review repo bis-innovations/LedgerLive; init/push commands
- CONTRACT_DEPLOYMENT_RUNBOOK: Chain 138 gas price 1 gwei, 36-addr check, TransactionMirror workaround
- CONTRACT_*: AddressMapper, MirrorManager deployed 2026-02-12; 36-address on-chain check
- NEXT_STEPS_FOR_YOU: Ledger done; steps completable now (no LAN); run-completable-tasks-from-anywhere
- MASTER_INDEX, OPERATOR_OPTIONAL, SMART_CONTRACTS_INVENTORY_SIMPLE: updates
- LEDGER_BLOCKCHAIN_INTEGRATION_COMPLETE: bis-innovations/LedgerLive reference

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 15:46:57 -08:00

117 lines
4.0 KiB
Bash
Executable File

#!/usr/bin/env bash
# Run Besu fixes on Proxmox host via SSH
# Uses sshpass for password authentication
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
HOST="${1:-${PROXMOX_HOST_ML110:-192.168.11.10}}"
USER="${2:-root}"
PASS="${3:-}"
REMOTE_DIR="${4:-/opt/smom-dbis-138-proxmox}"
if [[ -z "$PASS" ]]; then
echo "Usage: $0 [HOST] [USER] [PASSWORD] [REMOTE_DIR]"
echo "Example: $0 ${PROXMOX_HOST_ML110:-192.168.11.10} root 'password' /opt/smom-dbis-138-proxmox"
exit 1
fi
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
BESU_PROJECT="$PROJECT_ROOT/smom-dbis-138-proxmox"
echo "=== Running Besu Fixes on Proxmox Host ==="
echo "Host: $HOST"
echo "User: $USER"
echo "Remote Directory: $REMOTE_DIR"
echo ""
# Check if sshpass is installed
if ! command -v sshpass >/dev/null 2>&1; then
echo "❌ sshpass not found. Please install it:"
echo " Ubuntu/Debian: sudo apt-get install sshpass"
echo " macOS: brew install sshpass"
exit 1
fi
# Export password for sshpass
export SSHPASS="$PASS"
# Test connection
echo "Testing SSH connection..."
if ! sshpass -e ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 "$USER@$HOST" "echo 'Connection successful'" 2>/dev/null; then
echo "❌ Cannot connect to $HOST"
exit 1
fi
echo "✅ SSH connection successful"
echo ""
# Check if remote directory exists and has scripts
echo "Checking remote directory..."
if sshpass -e ssh -o StrictHostKeyChecking=no "$USER@$HOST" "test -d $REMOTE_DIR/scripts" 2>/dev/null; then
echo "✅ Remote directory exists: $REMOTE_DIR"
HAS_SCRIPTS=$(sshpass -e ssh -o StrictHostKeyChecking=no "$USER@$HOST" "test -f $REMOTE_DIR/scripts/fix-all-besu.sh && echo yes || echo no" 2>/dev/null)
if [[ "$HAS_SCRIPTS" == "yes" ]]; then
echo "✅ Fix scripts already exist on remote host"
USE_REMOTE=true
else
echo "⚠️ Fix scripts not found, copying them..."
USE_REMOTE=false
fi
else
echo "⚠️ Remote directory not found, creating it..."
sshpass -e ssh -o StrictHostKeyChecking=no "$USER@$HOST" "mkdir -p $REMOTE_DIR" 2>/dev/null
USE_REMOTE=false
fi
# Copy scripts if needed
if [[ "$USE_REMOTE" == "false" ]]; then
echo "Copying fix scripts to remote host..."
# Create scripts directory
sshpass -e ssh -o StrictHostKeyChecking=no "$USER@$HOST" "mkdir -p $REMOTE_DIR/scripts" 2>/dev/null
# Copy fix scripts
for script in fix-container-ips.sh fix-besu-services.sh validate-besu-config.sh fix-all-besu.sh; do
if [[ -f "$BESU_PROJECT/scripts/$script" ]]; then
echo " Copying $script..."
sshpass -e scp -o StrictHostKeyChecking=no "$BESU_PROJECT/scripts/$script" "$USER@$HOST:$REMOTE_DIR/scripts/" 2>/dev/null
fi
done
# Copy lib directory if it exists
if [[ -d "$BESU_PROJECT/lib" ]]; then
echo " Copying lib directory..."
sshpass -e ssh -o StrictHostKeyChecking=no "$USER@$HOST" "mkdir -p $REMOTE_DIR/lib" 2>/dev/null
sshpass -e scp -o StrictHostKeyChecking=no -r "$BESU_PROJECT/lib"/* "$USER@$HOST:$REMOTE_DIR/lib/" 2>/dev/null
fi
# Copy config directory
if [[ -d "$BESU_PROJECT/config" ]]; then
echo " Copying config directory..."
sshpass -e ssh -o StrictHostKeyChecking=no "$USER@$HOST" "mkdir -p $REMOTE_DIR/config" 2>/dev/null
sshpass -e scp -o StrictHostKeyChecking=no -r "$BESU_PROJECT/config"/* "$USER@$HOST:$REMOTE_DIR/config/" 2>/dev/null
fi
# Make scripts executable
sshpass -e ssh -o StrictHostKeyChecking=no "$USER@$HOST" "chmod +x $REMOTE_DIR/scripts/*.sh" 2>/dev/null
echo "✅ Scripts copied"
fi
echo ""
echo "=== Running fix-all-besu.sh on Proxmox host ==="
echo ""
# Run the fix script
sshpass -e ssh -o StrictHostKeyChecking=no "$USER@$HOST" "cd $REMOTE_DIR && bash scripts/fix-all-besu.sh"
echo ""
echo "=== Fix execution completed ==="