- 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
117 lines
3.3 KiB
Bash
Executable File
117 lines
3.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# Force restart VM 100 to apply guest agent fix
|
|
# Run on Proxmox node: root@ml110-01
|
|
|
|
set -e
|
|
|
|
VMID=100
|
|
|
|
echo "=========================================="
|
|
echo "Force Restart VM 100 for Guest Agent Fix"
|
|
echo "=========================================="
|
|
echo ""
|
|
|
|
# Step 1: Check current status
|
|
echo "Step 1: Current VM Status"
|
|
echo "--------------------------------------"
|
|
qm status $VMID
|
|
echo ""
|
|
|
|
# Step 2: Verify guest agent config
|
|
echo "Step 2: Guest Agent Configuration"
|
|
echo "--------------------------------------"
|
|
AGENT_CONFIG=$(qm config $VMID | grep '^agent:' || echo "")
|
|
if [ -z "$AGENT_CONFIG" ]; then
|
|
echo "⚠️ Guest agent NOT configured"
|
|
echo "Setting agent=1..."
|
|
qm set $VMID --agent 1
|
|
echo "✅ Guest agent enabled"
|
|
else
|
|
echo "✅ Guest agent configured: $AGENT_CONFIG"
|
|
fi
|
|
echo ""
|
|
|
|
# Step 3: Force stop VM
|
|
echo "Step 3: Force Stopping VM"
|
|
echo "--------------------------------------"
|
|
CURRENT_STATUS=$(qm status $VMID | awk '{print $2}')
|
|
if [ "$CURRENT_STATUS" = "running" ]; then
|
|
echo "VM is running, attempting graceful shutdown first..."
|
|
qm shutdown $VMID &
|
|
SHUTDOWN_PID=$!
|
|
|
|
# Wait up to 30 seconds for graceful shutdown
|
|
for i in {1..30}; do
|
|
sleep 1
|
|
STATUS=$(qm status $VMID | awk '{print $2}' 2>/dev/null || echo "unknown")
|
|
if [ "$STATUS" != "running" ]; then
|
|
echo "✅ VM shut down gracefully"
|
|
break
|
|
fi
|
|
if [ $i -eq 30 ]; then
|
|
echo "⚠️ Graceful shutdown timed out, forcing stop..."
|
|
kill $SHUTDOWN_PID 2>/dev/null || true
|
|
qm stop $VMID
|
|
echo "✅ VM force stopped"
|
|
fi
|
|
done
|
|
else
|
|
echo "VM is already stopped (status: $CURRENT_STATUS)"
|
|
fi
|
|
echo ""
|
|
|
|
# Step 4: Wait and verify stopped
|
|
echo "Step 4: Verifying VM is Stopped"
|
|
echo "--------------------------------------"
|
|
sleep 3
|
|
FINAL_STATUS=$(qm status $VMID | awk '{print $2}')
|
|
if [ "$FINAL_STATUS" = "stopped" ]; then
|
|
echo "✅ VM is stopped"
|
|
else
|
|
echo "⚠️ VM status: $FINAL_STATUS"
|
|
echo "Waiting a bit longer..."
|
|
sleep 5
|
|
FINAL_STATUS=$(qm status $VMID | awk '{print $2}')
|
|
echo "Final status: $FINAL_STATUS"
|
|
fi
|
|
echo ""
|
|
|
|
# Step 5: Start VM
|
|
echo "Step 5: Starting VM"
|
|
echo "--------------------------------------"
|
|
if [ "$FINAL_STATUS" = "stopped" ]; then
|
|
echo "Starting VM..."
|
|
qm start $VMID
|
|
echo ""
|
|
echo "Waiting 10 seconds for initialization..."
|
|
sleep 10
|
|
echo ""
|
|
echo "VM status after start:"
|
|
qm status $VMID
|
|
else
|
|
echo "⚠️ Cannot start VM - current status: $FINAL_STATUS"
|
|
echo "Please check VM state manually"
|
|
fi
|
|
echo ""
|
|
|
|
# Step 6: Instructions for guest agent verification
|
|
echo "=========================================="
|
|
echo "VM Restarted - Next Steps"
|
|
echo "=========================================="
|
|
echo ""
|
|
echo "Wait 30-60 seconds for VM to fully boot, then verify guest agent:"
|
|
echo ""
|
|
echo "1. Check guest agent service (once VM has booted):"
|
|
echo " qm guest exec $VMID -- systemctl status qemu-guest-agent"
|
|
echo ""
|
|
echo "2. If guest agent service is not running, install it inside VM:"
|
|
echo " (You'll need to SSH into the VM or use console)"
|
|
echo ""
|
|
echo "3. Monitor VM status:"
|
|
echo " watch -n 2 \"qm status $VMID\""
|
|
echo ""
|
|
echo "4. Check VM IP address (once booted):"
|
|
echo " qm guest exec $VMID -- hostname -I"
|
|
echo ""
|
|
|