156 lines
4.0 KiB
Markdown
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 ✅
|
|
|