Files
proxmox/docs/archive/VERIFICATION_SCRIPTS_GUIDE.md

330 lines
8.1 KiB
Markdown

# Verification Scripts Guide
**Last Updated**: 2025-01-11
**Purpose**: Guide for using verification scripts before deployment
---
## Overview
Verification scripts help ensure your environment is properly configured for optimal deployment performance. Run these scripts before starting deployment to identify and fix issues early.
---
## Available Verification Scripts
### 1. Prerequisites Check
**Script**: `scripts/validation/check-prerequisites.sh`
**Purpose**: Validates that all required configuration files, keys, and directories exist in the source project.
**Usage**:
```bash
./scripts/validation/check-prerequisites.sh /path/to/smom-dbis-138
```
**What it checks**:
- Source project directory exists
- Required directories (config/, keys/validators/)
- Required files (genesis.json, permissions-nodes.toml, etc.)
- Optional files (config files for validators, sentries, RPC)
- Node-specific files (if config/nodes/ structure exists)
- CCIP configuration files
- Other service configuration files
**Output**:
- ✓ Green checkmarks for found items
- ✗ Red X for missing required items
- ⚠ Yellow warnings for optional missing items
- Summary with error and warning counts
- Recommendations for next steps
---
### 2. Storage Configuration Verification
**Script**: `scripts/validation/verify-storage-config.sh`
**Purpose**: Verifies storage configuration for optimal deployment performance.
**Usage**:
```bash
# Must be run on Proxmox host as root
sudo ./scripts/validation/verify-storage-config.sh
```
**What it checks**:
- Configured storage exists (`PROXMOX_STORAGE` from config)
- Storage type (local vs. network-based)
- Storage status and capacity
- Available space for deployment
**Output**:
- Storage type analysis
- Performance recommendations
- Local vs. network storage impact
- Estimated storage requirements
**Recommendations**:
- Use local storage (local-lvm, local, local-zfs) for best performance
- Ensures ~100GB per container available
- Can save 15-30 minutes deployment time
---
### 3. Network Configuration Verification
**Script**: `scripts/validation/verify-network-config.sh`
**Purpose**: Verifies network configuration and connectivity for optimal deployment performance.
**Usage**:
```bash
# Can be run from any machine with network access
./scripts/validation/verify-network-config.sh
```
**What it checks**:
- Network connectivity to Proxmox host
- Latency measurements
- Network interface speeds
- DNS resolution
- Internet connectivity
- Download speed estimation
- Proxmox bridge configuration
**Output**:
- Network interface status and speeds
- Latency measurements
- Download speed estimates
- Connectivity status
- Optimization recommendations
**Recommendations**:
- Use Gigabit Ethernet (1 Gbps) or faster
- Ensure low latency (<50ms)
- Use wired connection instead of wireless
- Can save 30-60 minutes deployment time
---
## Pre-Deployment Workflow
### Step 1: Verify Prerequisites
```bash
# Check all configuration files are ready
./scripts/validation/check-prerequisites.sh /home/intlc/projects/smom-dbis-138
```
**Expected Output**: All required files should show ✓ (green checkmarks)
**If errors occur**:
- Fix missing files
- Verify source project path is correct
- Check file permissions
---
### Step 2: Verify Storage (on Proxmox host)
```bash
# Verify storage configuration
sudo ./scripts/validation/verify-storage-config.sh
```
**Expected Output**:
- ✓ Configured storage exists
- ✓ Storage is local (recommended)
- ✓ Sufficient capacity available
**If issues occur**:
- Update `PROXMOX_STORAGE` in `config/proxmox.conf`
- Ensure storage is local (not network-based)
- Free up space if needed
---
### Step 3: Verify Network
```bash
# Verify network configuration
./scripts/validation/verify-network-config.sh
```
**Expected Output**:
- ✓ Proxmox host is reachable
- ✓ Low latency (<50ms)
- ✓ Network interface is Gigabit or faster
- ✓ DNS resolution working
- ✓ Internet connectivity working
- ✓ Download speed >100 Mbps
**If issues occur**:
- Use wired connection instead of wireless
- Upgrade network connection if possible
- Check DNS configuration
- Verify Proxmox bridge is UP
---
### Step 4: Pre-cache OS Template (Optional but Recommended)
```bash
# Pre-cache OS template (saves 5-10 minutes)
sudo ./scripts/deployment/pre-cache-os-template.sh
```
**Expected Output**:
- ✓ Template downloaded or already cached
- Template details displayed
---
### Step 5: Start Deployment
Once all verifications pass, you're ready to deploy:
```bash
# Option 1: Phased deployment (recommended)
sudo ./scripts/deployment/deploy-phased.sh \
--source-project /home/intlc/projects/smom-dbis-138
# Option 2: Full deployment
sudo ./scripts/deployment/deploy-validated-set.sh \
--source-project /home/intlc/projects/smom-dbis-138
```
---
## Quick Verification Script
Create a combined verification script for convenience:
```bash
#!/usr/bin/env bash
# Quick verification - run all checks
echo "=== Running All Verification Checks ==="
echo ""
echo "1. Prerequisites Check..."
./scripts/validation/check-prerequisites.sh "$1" || exit 1
echo ""
echo "2. Storage Configuration (requires root on Proxmox host)..."
if [[ $EUID -eq 0 ]] && command_exists pvesm; then
./scripts/validation/verify-storage-config.sh || exit 1
else
echo " Skipping (not running as root on Proxmox host)"
fi
echo ""
echo "3. Network Configuration..."
./scripts/validation/verify-network-config.sh || exit 1
echo ""
echo "✅ All verification checks completed!"
```
Save as `scripts/validation/verify-all.sh` and run:
```bash
chmod +x scripts/validation/verify-all.sh
./scripts/validation/verify-all.sh /path/to/smom-dbis-138
```
---
## Expected Results
### Prerequisites Check
**All Pass**: Ready for deployment
- No errors (red X marks)
- Warnings are acceptable (yellow ⚠)
**Failures**: Fix before deployment
- Missing required files
- Missing required directories
- Configuration errors
### Storage Verification
**Optimal**: Local storage configured
- Storage type: local-lvm, local, or local-zfs
- Sufficient capacity available
- Storage is UP and accessible
⚠️ **Acceptable**: Network storage configured
- Storage accessible
- May be slower than local storage
- Consider using local storage if possible
### Network Verification
**Optimal**: Fast network configured
- Connection speed: 1 Gbps or faster
- Latency: <50ms
- Download speed: >100 Mbps
⚠️ **Acceptable**: Moderate network
- Connection speed: 100 Mbps
- Latency: <100ms
- Download speed: >10 Mbps
- Deployment will be slower but functional
---
## Troubleshooting
### Prerequisites Check Issues
**Problem**: Missing required files
- **Solution**: Ensure source project is correct and files are present
- **Check**: Run `ls -la /path/to/smom-dbis-138/config/`
**Problem**: Missing node-specific files
- **Solution**: Verify config/nodes/ structure or use flat config structure
- **Check**: Run `find /path/to/smom-dbis-138/config/nodes -type f`
### Storage Verification Issues
**Problem**: Configured storage not found
- **Solution**: Update `PROXMOX_STORAGE` in config/proxmox.conf
- **Check**: Run `pvesm status` to see available storage
**Problem**: Network storage detected
- **Solution**: Consider using local storage for better performance
- **Impact**: May add 15-30 minutes to deployment time
### Network Verification Issues
**Problem**: Cannot reach Proxmox host
- **Solution**: Check network connectivity, firewall rules
- **Check**: Run `ping <proxmox-host>`
**Problem**: Slow download speed
- **Solution**: Upgrade network connection or use local package mirrors
- **Impact**: May add 30-60 minutes to deployment time
---
## References
- **Storage and Network Guide**: `docs/STORAGE_NETWORK_VERIFICATION.md`
- **Deployment Time Estimate**: `docs/DEPLOYMENT_TIME_ESTIMATE.md`
- **Optimization Recommendations**: `docs/DEPLOYMENT_OPTIMIZATION_RECOMMENDATIONS.md`
---
## Summary
Always run verification scripts before deployment to:
1. ✅ Ensure all files are ready (prerequisites check)
2. ✅ Verify storage is optimal (storage verification)
3. ✅ Verify network is sufficient (network verification)
This helps prevent deployment failures and ensures optimal performance.