5.7 KiB
5.7 KiB
Run Deployment - Execution Guide
✅ Scripts Validated and Ready
All scripts have been validated:
- ✓ Syntax OK
- ✓ Executable permissions set
- ✓ Dependencies present
- ✓ Help/usage messages working
Quick Start
Step 1: Copy Scripts to Proxmox Host
From your local machine:
cd /home/intlc/projects/proxmox
./scripts/copy-scripts-to-proxmox.sh
This copies all deployment scripts to the Proxmox host at /opt/smom-dbis-138-proxmox/scripts/.
Step 2: Run Deployment on Proxmox Host
SSH to Proxmox host and execute:
# 1. SSH to Proxmox host
ssh root@192.168.11.10
# 2. Navigate to deployment directory
cd /opt/smom-dbis-138-proxmox
# 3. Run complete deployment
sudo ./scripts/deployment/deploy-validated-set.sh \
--source-project /home/intlc/projects/smom-dbis-138
Note: The source project path must be accessible from the Proxmox host. If the Proxmox host is remote, ensure:
- The directory is mounted/shared, OR
- Configuration files are copied separately to the Proxmox host
## Execution Options
### Option 1: Complete Deployment (First Time)
Deploys everything from scratch:
```bash
sudo ./scripts/deployment/deploy-validated-set.sh \
--source-project /path/to/smom-dbis-138
What it does:
- Deploys containers
- Copies configuration files
- Bootstraps network
- Validates deployment
Option 2: Bootstrap Existing Containers
If containers are already deployed:
sudo ./scripts/network/bootstrap-network.sh
Or using the main script:
sudo ./scripts/deployment/deploy-validated-set.sh \
--skip-deployment \
--skip-config \
--source-project /path/to/smom-dbis-138
Option 3: Validate Only
Just validate the current deployment:
sudo ./scripts/validation/validate-validator-set.sh
Option 4: Check Node Health
Check health of a specific node:
# Human-readable output
sudo ./scripts/health/check-node-health.sh 1000
# JSON output (for automation)
sudo ./scripts/health/check-node-health.sh 1000 --json
Expected Output
Successful Deployment
=========================================
Deploy Validated Set - Script-Based Approach
=========================================
=== Pre-Deployment Validation ===
[✓] Prerequisites checked
=========================================
Phase 1: Deploy Containers
=========================================
[INFO] Deploying Besu nodes...
[✓] Besu nodes deployed
=========================================
Phase 2: Copy Configuration Files
=========================================
[INFO] Copying Besu configuration files...
[✓] Configuration files copied
=========================================
Phase 3: Bootstrap Network
=========================================
[INFO] Bootstrapping network...
[INFO] Collecting enodes from validators...
[✓] Network bootstrapped
=========================================
Phase 4: Validate Deployment
=========================================
[INFO] Validating validator set...
[✓] All validators validated successfully!
=========================================
[✓] Deployment Complete!
=========================================
Monitoring During Execution
Watch Logs in Real-Time
# In another terminal, watch the log file
tail -f /opt/smom-dbis-138-proxmox/logs/deploy-validated-set-*.log
Check Container Status
# List all containers
pct list | grep -E "1000|1001|1002|1003|1004|1500|1501|1502|1503|2500|2501|2502"
# Check specific container
pct status 1000
Monitor Service Logs
# Watch Besu service logs
pct exec 1000 -- journalctl -u besu-validator -f
Troubleshooting
If Deployment Fails
-
Check the log file:
tail -100 /opt/smom-dbis-138-proxmox/logs/deploy-validated-set-*.log -
Check container status:
pct list -
Check service status:
pct exec <vmid> -- systemctl status besu-validator -
Review error messages in the script output
Common Issues
Issue: Containers not starting
- Check resources (RAM, disk)
- Check OS template availability
- Review container logs
Issue: Configuration copy fails
- Verify source project path is correct
- Check source files exist
- Verify containers are running
Issue: Bootstrap fails
- Ensure containers are running
- Check P2P port (30303) is accessible
- Verify enode extraction works
Issue: Validation fails
- Check validator keys exist
- Verify configuration files are present
- Check services are running
Post-Deployment Verification
After successful deployment, verify:
# 1. Check all services are running
for vmid in 1000 1001 1002 1003 1004 1500 1501 1502 1503 2500 2501 2502; do
echo "=== Container $vmid ==="
pct exec $vmid -- systemctl status besu-validator besu-sentry besu-rpc --no-pager 2>/dev/null | head -5
done
# 2. Check consensus (block production)
pct exec 2500 -- curl -s -X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' \
http://localhost:8545 | python3 -m json.tool
# 3. Check peer connections
pct exec 2500 -- curl -s -X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"admin_peers","params":[],"id":1}' \
http://localhost:8545 | python3 -m json.tool
Success Criteria
Deployment is successful when:
- ✓ All containers are running
- ✓ All services are active
- ✓ Network is bootstrapped (static-nodes.json deployed)
- ✓ Validators are validated
- ✓ Consensus is active (blocks being produced)
- ✓ Nodes can connect to peers
Next Steps
After successful deployment:
- Set up monitoring
- Configure backups
- Document node endpoints
- Set up alerting
- Plan maintenance schedule