Files
proxmox/docs/archive/DEPLOYMENT_EXECUTION_GUIDE.md

4.0 KiB

Deployment Execution Guide

Date: 2025-01-20
Deployment Type: Complete Validated Deployment (Option 1)

Quick Start

SSH to ml110 and Run Deployment

ssh root@192.168.11.10
cd /opt/smom-dbis-138-proxmox
./scripts/deployment/deploy-validated-set.sh --source-project /opt/smom-dbis-138

What the Deployment Script Does

The deploy-validated-set.sh script orchestrates the complete deployment in these phases:

Phase 1: Deploy Containers

  • Creates LXC containers for all Besu nodes:
    • 5 Validator containers (VMIDs 1000-1004)
    • 4 Sentry containers (VMIDs 1500-1503)
    • 3 RPC containers (VMIDs 2500-2502)
  • Installs Besu on each container
  • Configures network settings
  • Sets up systemd services

Timeout: 1 hour (3600 seconds)

Phase 2: Copy Configuration

  • Copies genesis.json to all containers
  • Copies validator keys to respective containers
  • Copies configuration files (config-validator.toml, etc.)
  • Copies permissions files (permissions-nodes.toml, etc.)
  • Sets correct file permissions

Timeout: 30 minutes (1800 seconds)

Phase 3: Bootstrap Network

  • Generates static-nodes.json with correct enode URLs
  • Updates network configuration
  • Configures peer discovery
  • Sets up initial network connections

Timeout: 5 minutes (300 seconds)

Phase 4: Validation

  • Validates container status
  • Checks service status
  • Verifies configuration files
  • Validates key files
  • Checks network connectivity

Expected Duration

  • Full Deployment: 30-60 minutes
  • Quick Deployment (containers already exist): 10-15 minutes

Monitoring Progress

The script provides progress indicators and logs. Watch for:

  1. Container Creation: Progress for each container
  2. Configuration Copy: Files being copied to each container
  3. Network Bootstrap: Enode URL generation
  4. Validation: Status checks for each component

Troubleshooting

If Deployment Fails

  1. Check Logs: The script logs to stdout/stderr

  2. Verify Prerequisites:

    # Check source project exists
    ls -la /opt/smom-dbis-138/config/genesis.json
    
    # Check validator keys exist
    ls -la /opt/smom-dbis-138/keys/validators/
    
  3. Retry with Skip Options:

    # If containers already exist, skip deployment
    ./scripts/deployment/deploy-validated-set.sh \
      --source-project /opt/smom-dbis-138 \
      --skip-deployment
    

Common Issues

Issue: Containers already exist

  • Solution: Use --skip-deployment flag

Issue: Configuration files not found

  • Solution: Verify source project path: /opt/smom-dbis-138

Issue: Keys not found

  • Solution: Ensure validator keys are in /opt/smom-dbis-138/keys/validators/

Alternative: Step-by-Step Deployment

If the automated script fails, deploy manually:

# Step 1: Deploy containers
./scripts/deployment/deploy-besu-nodes.sh

# Step 2: Copy configuration
./scripts/copy-besu-config.sh /opt/smom-dbis-138

# Step 3: Fix IPs (if needed)
./scripts/fix-container-ips.sh

# Step 4: Bootstrap network
./scripts/network/bootstrap-network.sh

# Step 5: Start services
./scripts/fix-besu-services.sh

# Step 6: Validate
./scripts/validation/validate-deployment-comprehensive.sh

Post-Deployment Verification

After deployment completes, verify:

# Check container status
pct list | grep -E "100[0-4]|150[0-3]|250[0-2]"

# Check services
pct exec 1000 -- systemctl status besu-validator.service

# Check network
pct exec 1000 -- curl -X POST -H "Content-Type: application/json" \
  --data '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1}' \
  http://localhost:8545

Next Steps After Deployment

  1. Monitor Logs: Watch Besu logs for each validator
  2. Verify Consensus: Check that blocks are being produced
  3. Test RPC: Verify RPC nodes are accessible
  4. Network Health: Monitor peer connections

Ready to Deploy: All prerequisites met
Genesis.json: Updated with current validator addresses
Keys: All 5 validator keys present and verified