Files
HomeAudit/scripts/test_host_connectivity.sh
admin 705a2757c1 Major infrastructure migration and Vaultwarden PostgreSQL troubleshooting
COMPREHENSIVE CHANGES:

INFRASTRUCTURE MIGRATION:
- Migrated services to Docker Swarm on OMV800 (192.168.50.229)
- Deployed PostgreSQL database for Vaultwarden migration
- Updated all stack configurations for Docker Swarm compatibility
- Added comprehensive monitoring stack (Prometheus, Grafana, Blackbox)
- Implemented proper secret management for all services

VAULTWARDEN POSTGRESQL MIGRATION:
- Attempted migration from SQLite to PostgreSQL for NFS compatibility
- Created PostgreSQL stack with proper user/password configuration
- Built custom Vaultwarden image with PostgreSQL support
- Troubleshot persistent SQLite fallback issue despite PostgreSQL config
- Identified known issue where Vaultwarden silently falls back to SQLite
- Added ENABLE_DB_WAL=false to prevent filesystem compatibility issues
- Current status: Old Vaultwarden on lenovo410 still working, new one has config issues

PAPERLESS SERVICES:
- Successfully deployed Paperless-NGX and Paperless-AI on OMV800
- Both services running on ports 8000 and 3000 respectively
- Caddy configuration updated for external access
- Services accessible via paperless.pressmess.duckdns.org and paperless-ai.pressmess.duckdns.org

CADDY CONFIGURATION:
- Updated Caddyfile on Surface (192.168.50.254) for new service locations
- Fixed Vaultwarden reverse proxy to point to new Docker Swarm service
- Removed old notification hub reference that was causing conflicts
- All services properly configured for external access via DuckDNS

BACKUP AND DISCOVERY:
- Created comprehensive backup system for all hosts
- Generated detailed discovery reports for infrastructure analysis
- Implemented automated backup validation scripts
- Created migration progress tracking and verification reports

MONITORING STACK:
- Deployed Prometheus, Grafana, and Blackbox monitoring
- Created infrastructure and system overview dashboards
- Added proper service discovery and alerting configuration
- Implemented performance monitoring for all critical services

DOCUMENTATION:
- Reorganized documentation into logical structure
- Created comprehensive migration playbook and troubleshooting guides
- Added hardware specifications and optimization recommendations
- Documented all configuration changes and service dependencies

CURRENT STATUS:
- Paperless services:  Working and accessible externally
- Vaultwarden:  PostgreSQL configuration issues, old instance still working
- Monitoring:  Deployed and operational
- Caddy:  Updated and working for external access
- PostgreSQL:  Database running, connection issues with Vaultwarden

NEXT STEPS:
- Continue troubleshooting Vaultwarden PostgreSQL configuration
- Consider alternative approaches for Vaultwarden migration
- Validate all external service access
- Complete final migration validation

TECHNICAL NOTES:
- Used Docker Swarm for orchestration on OMV800
- Implemented proper secret management for sensitive data
- Added comprehensive logging and monitoring
- Created automated backup and validation scripts
2025-08-30 20:18:44 -04:00

79 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
# Test host connectivity script
# Tests each host from all_hosts.txt individually
set -uo pipefail
# Load passwords
source secrets/ssh_passwords.env
# Discovery directory
DISCOVERY_DIR="comprehensive_discovery_results"
echo "=== TESTING HOST CONNECTIVITY ==="
echo "Testing each host from: $DISCOVERY_DIR/all_hosts.txt"
echo
# Test each host
while IFS=: read -r host user; do
if [[ -z "$host" || "$host" == "localhost" ]]; then
continue
fi
echo "🔍 Testing: $host (user: $user)"
# Get password for this host
case "$host" in
"fedora")
password="$FEDORA_PASSWORD"
;;
"lenovo")
password="$LENOVO_PASSWORD"
;;
"lenovo420")
password="$LENOVO420_PASSWORD"
;;
"omv800")
password="$OMV800_PASSWORD"
;;
"surface")
password="$SURFACE_PASSWORD"
;;
"audrey")
password="$AUDREY_PASSWORD"
;;
"raspberrypi")
password="$RASPBERRYPI_PASSWORD"
;;
*)
password=""
;;
esac
if [[ -z "$password" ]]; then
echo "❌ No password configured for $host"
else
echo " Password: [CONFIGURED]"
# Test SSH connection
if sshpass -p "$password" ssh -o ConnectTimeout=10 -o StrictHostKeyChecking=no "$user@$host" "echo 'SSH connection successful'" 2>/dev/null; then
echo "✅ SSH: SUCCESS"
# Test basic commands
echo " Testing basic commands..."
if sshpass -p "$password" ssh -o ConnectTimeout=10 -o StrictHostKeyChecking=no "$user@$host" "hostname && whoami && pwd" 2>/dev/null; then
echo "✅ Commands: SUCCESS"
else
echo "❌ Commands: FAILED"
fi
else
echo "❌ SSH: FAILED"
fi
fi
echo "---"
done < "$DISCOVERY_DIR/all_hosts.txt"
echo "=== CONNECTIVITY TEST COMPLETE ==="