Files
proxmox/docs/archive/DEPLOYMENT_EXECUTION_GUIDE.md

156 lines
4.0 KiB
Markdown

# Deployment Execution Guide
**Date**: 2025-01-20
**Deployment Type**: Complete Validated Deployment (Option 1)
## Quick Start
### SSH to ml110 and Run Deployment
```bash
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**:
```bash
# 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**:
```bash
# 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:
```bash
# 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:
```bash
# 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 ✅