Files
Sankofa/scripts/copy-script-to-proxmox-nodes.sh
defiQUG 9daf1fd378 Apply Composer changes: comprehensive API updates, migrations, middleware, and infrastructure improvements
- Add comprehensive database migrations (001-024) for schema evolution
- Enhance API schema with expanded type definitions and resolvers
- Add new middleware: audit logging, rate limiting, MFA enforcement, security, tenant auth
- Implement new services: AI optimization, billing, blockchain, compliance, marketplace
- Add adapter layer for cloud integrations (Cloudflare, Kubernetes, Proxmox, storage)
- Update Crossplane provider with enhanced VM management capabilities
- Add comprehensive test suite for API endpoints and services
- Update frontend components with improved GraphQL subscriptions and real-time updates
- Enhance security configurations and headers (CSP, CORS, etc.)
- Update documentation and configuration files
- Add new CI/CD workflows and validation scripts
- Implement design system improvements and UI enhancements
2025-12-12 18:01:35 -08:00

140 lines
4.0 KiB
Bash
Executable File

#!/bin/bash
# Copy complete-vm-100-guest-agent-check.sh to both Proxmox nodes
# Uses password from .env file
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
# Source .env file
if [ -f "$PROJECT_ROOT/.env" ]; then
set -a
source "$PROJECT_ROOT/.env"
set +a
fi
# Get password (with fallback)
PROXMOX_PASS="${PROXMOX_ROOT_PASS:-L@kers2010}"
# Use exact password format provided by user
PROXMOX_PASS="L@kers2010"
# Get hostnames/IPs (with defaults from other scripts)
PROXMOX_1_HOST="${PROXMOX_1_HOST:-192.168.11.10}"
PROXMOX_2_HOST="${PROXMOX_2_HOST:-192.168.11.11}"
# Also try hostnames if IPs don't work
PROXMOX_1_HOSTNAME="${PROXMOX_1_HOSTNAME:-ml110-01}"
PROXMOX_2_HOSTNAME="${PROXMOX_2_HOSTNAME:-r630-01}"
SCRIPT_NAME="complete-vm-100-guest-agent-check.sh"
SCRIPT_PATH="$SCRIPT_DIR/$SCRIPT_NAME"
REMOTE_PATH="/usr/local/bin/$SCRIPT_NAME"
echo "=========================================="
echo "Copying Script to Proxmox Nodes"
echo "=========================================="
echo ""
echo "Script: $SCRIPT_NAME"
echo "Source: $SCRIPT_PATH"
echo "Target: $REMOTE_PATH"
echo ""
# Check if script exists
if [ ! -f "$SCRIPT_PATH" ]; then
echo "❌ Error: Script not found: $SCRIPT_PATH"
exit 1
fi
# Check if sshpass is available
if ! command -v sshpass &> /dev/null; then
echo "❌ Error: sshpass is not installed"
echo "Install it with: sudo apt-get install sshpass"
exit 1
fi
# Function to copy to a node
copy_to_node() {
local host=$1
local node_name=$2
echo "--------------------------------------"
echo "Copying to $node_name ($host)..."
echo "--------------------------------------"
# Test connection first
if ! sshpass -p "$PROXMOX_PASS" ssh -o StrictHostKeyChecking=no -o ConnectTimeout=5 root@$host "echo 'Connected'" > /dev/null 2>&1; then
echo "❌ Failed to connect to $host"
return 1
fi
# Copy script
if sshpass -p "$PROXMOX_PASS" scp -o StrictHostKeyChecking=no "$SCRIPT_PATH" root@$host:"$REMOTE_PATH"; then
echo "✅ Script copied successfully"
# Make executable
if sshpass -p "$PROXMOX_PASS" ssh -o StrictHostKeyChecking=no root@$host "chmod +x $REMOTE_PATH"; then
echo "✅ Script made executable"
# Verify
if sshpass -p "$PROXMOX_PASS" ssh -o StrictHostKeyChecking=no root@$host "test -x $REMOTE_PATH"; then
echo "✅ Script verified as executable"
echo ""
echo "You can now run on $node_name:"
echo " $REMOTE_PATH"
echo ""
return 0
else
echo "⚠️ Warning: Script may not be executable"
return 1
fi
else
echo "❌ Failed to make script executable"
return 1
fi
else
echo "❌ Failed to copy script"
return 1
fi
}
# Copy to both nodes
SUCCESS_COUNT=0
# Try IP first, then hostname
if copy_to_node "$PROXMOX_1_HOST" "ml110-01 (Site 1)"; then
((SUCCESS_COUNT++))
elif copy_to_node "$PROXMOX_1_HOSTNAME" "ml110-01 (Site 1 - hostname)"; then
((SUCCESS_COUNT++))
fi
if copy_to_node "$PROXMOX_2_HOST" "r630-01 (Site 2)"; then
((SUCCESS_COUNT++))
elif copy_to_node "$PROXMOX_2_HOSTNAME" "r630-01 (Site 2 - hostname)"; then
((SUCCESS_COUNT++))
fi
echo "=========================================="
echo "Summary"
echo "=========================================="
echo "✅ Successfully copied to $SUCCESS_COUNT/2 nodes"
echo ""
if [ $SUCCESS_COUNT -eq 2 ]; then
echo "✅ All nodes updated successfully!"
echo ""
echo "To run the script on ml110-01:"
echo " ssh root@$PROXMOX_1_HOST"
echo " $REMOTE_PATH"
echo ""
echo "To run the script on r630-01:"
echo " ssh root@$PROXMOX_2_HOST"
echo " $REMOTE_PATH"
exit 0
else
echo "⚠️ Some nodes failed. Check the output above."
exit 1
fi