Files
Sankofa/scripts/force-delete-all-vms-aggressive.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

130 lines
4.2 KiB
Bash
Executable File

#!/bin/bash
# Aggressively force delete all VMs
PROXMOX_PASS="L@kers2010"
SITE1="192.168.11.10"
SITE2="192.168.11.11"
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
log() {
echo -e "${BLUE}[$(date +'%Y-%m-%d %H:%M:%S')]${NC} $*"
}
log_success() {
echo -e "${GREEN}[$(date +'%Y-%m-%d %H:%M:%S')] ✅${NC} $*"
}
log_warning() {
echo -e "${YELLOW}[$(date +'%Y-%m-%d %H:%M:%S')] ⚠️${NC} $*"
}
force_delete_host() {
local host=$1
local site_name=$2
log "=========================================="
log "Force deleting all VMs on ${site_name} (${host})"
log "=========================================="
# Kill all qm processes
log "Killing all qm processes..."
sshpass -p "${PROXMOX_PASS}" ssh -o StrictHostKeyChecking=no root@${host} "pkill -9 -f 'qm '"
sleep 2
# Remove all lock files
log "Removing all lock files..."
sshpass -p "${PROXMOX_PASS}" ssh -o StrictHostKeyChecking=no root@${host} "rm -rf /var/lock/qemu-server/lock-*.conf"
sleep 1
# Get VM list
log "Getting VM list..."
local vm_list
vm_list=$(sshpass -p "${PROXMOX_PASS}" ssh -o StrictHostKeyChecking=no root@${host} "qm list 2>/dev/null | tail -n +2 | awk '{print \$1}'")
if [ -z "${vm_list}" ]; then
log_warning "No VMs found"
return 0
fi
# Force delete each VM
for vmid in $vm_list; do
log "Force deleting VM ${vmid}..."
# Remove lock file
sshpass -p "${PROXMOX_PASS}" ssh -o StrictHostKeyChecking=no root@${host} "rm -f /var/lock/qemu-server/lock-${vmid}.conf" 2>/dev/null
# Stop VM forcefully
sshpass -p "${PROXMOX_PASS}" ssh -o StrictHostKeyChecking=no root@${host} "qm stop ${vmid} --skiplock" 2>/dev/null || true
sleep 1
# Delete VM config
sshpass -p "${PROXMOX_PASS}" ssh -o StrictHostKeyChecking=no root@${host} "rm -f /etc/pve/qemu-server/${vmid}.conf" 2>/dev/null
# Delete VM with purge and skip lock
sshpass -p "${PROXMOX_PASS}" ssh -o StrictHostKeyChecking=no root@${host} "qm destroy ${vmid} --purge --skiplock" 2>&1 | grep -v "trying to acquire lock" || true
# If still exists, remove config and disks manually
sleep 2
local still_exists
still_exists=$(sshpass -p "${PROXMOX_PASS}" ssh -o StrictHostKeyChecking=no root@${host} "qm list 2>/dev/null | grep -c \"^[[:space:]]*${vmid}\" || echo 0")
if [ "${still_exists}" -gt 0 ]; then
log_warning "VM ${vmid} still exists, removing manually..."
# Remove config
sshpass -p "${PROXMOX_PASS}" ssh -o StrictHostKeyChecking=no root@${host} "rm -f /etc/pve/qemu-server/${vmid}.conf" 2>/dev/null
# Remove lock
sshpass -p "${PROXMOX_PASS}" ssh -o StrictHostKeyChecking=no root@${host} "rm -f /var/lock/qemu-server/lock-${vmid}.conf" 2>/dev/null
# Find and remove disks
sshpass -p "${PROXMOX_PASS}" ssh -o StrictHostKeyChecking=no root@${host} "lvs | grep vm-${vmid} | awk '{print \$1}' | xargs -r lvremove -f" 2>/dev/null || true
else
log_success "VM ${vmid} deleted"
fi
done
log_success "Completed force deletion on ${site_name}"
}
main() {
log "=========================================="
log "Aggressive Force Delete All VMs"
log "=========================================="
log ""
log_warning "This will forcefully delete ALL VMs on both hosts"
log ""
# Force delete Site 1
force_delete_host "${SITE1}" "Site 1 (ml110-01)"
echo ""
# Force delete Site 2
force_delete_host "${SITE2}" "Site 2 (r630-01)"
echo ""
log "=========================================="
log "Verifying deletion..."
echo ""
log "Site 1 VMs remaining:"
sshpass -p "${PROXMOX_PASS}" ssh -o StrictHostKeyChecking=no root@${SITE1} "qm list"
echo ""
log "Site 2 VMs remaining:"
sshpass -p "${PROXMOX_PASS}" ssh -o StrictHostKeyChecking=no root@${SITE2} "qm list"
echo ""
log "=========================================="
log_success "Force deletion completed!"
}
main "$@"