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
This commit is contained in:
187
scripts/complete-vm-100-guest-agent-check.sh
Executable file
187
scripts/complete-vm-100-guest-agent-check.sh
Executable file
@@ -0,0 +1,187 @@
|
||||
#!/bin/bash
|
||||
# Complete VM 100 Guest Agent Verification and Fix
|
||||
# Run on Proxmox node: root@ml110-01
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
VMID=100
|
||||
|
||||
# Check if running on Proxmox node
|
||||
if ! command -v qm &> /dev/null; then
|
||||
echo "=========================================="
|
||||
echo "ERROR: This script must be run on a Proxmox node"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
echo "The 'qm' command is not available on this machine."
|
||||
echo ""
|
||||
echo "This script must be run on the Proxmox node (root@ml110-01)"
|
||||
echo ""
|
||||
echo "To run this script:"
|
||||
echo " 1. SSH into the Proxmox node:"
|
||||
echo " ssh root@ml110-01"
|
||||
echo ""
|
||||
echo " 2. Copy the script to the Proxmox node, or"
|
||||
echo ""
|
||||
echo " 3. Run commands directly on Proxmox node:"
|
||||
echo " VMID=100"
|
||||
echo " qm status \$VMID"
|
||||
echo " qm config \$VMID | grep '^agent:'"
|
||||
echo " qm guest exec \$VMID -- dpkg -l | grep qemu-guest-agent"
|
||||
echo ""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "=========================================="
|
||||
echo "Complete VM 100 Guest Agent Check & Fix"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
|
||||
# Step 1: Check VM status
|
||||
echo "Step 1: Checking VM Status"
|
||||
echo "--------------------------------------"
|
||||
VM_STATUS=$(qm status $VMID | awk '{print $2}')
|
||||
echo "VM Status: $VM_STATUS"
|
||||
|
||||
if [ "$VM_STATUS" != "running" ]; then
|
||||
echo "⚠️ VM is not running. Starting VM..."
|
||||
qm start $VMID
|
||||
echo "Waiting 30 seconds for VM to boot..."
|
||||
sleep 30
|
||||
VM_STATUS=$(qm status $VMID | awk '{print $2}')
|
||||
if [ "$VM_STATUS" != "running" ]; then
|
||||
echo "❌ VM failed to start"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
echo "✅ VM is running"
|
||||
echo ""
|
||||
|
||||
# Step 2: Check Proxmox guest agent config
|
||||
echo "Step 2: Checking Proxmox Guest Agent Configuration"
|
||||
echo "--------------------------------------"
|
||||
AGENT_CONFIG=$(qm config $VMID | grep '^agent:' || echo "")
|
||||
if [ -z "$AGENT_CONFIG" ]; then
|
||||
echo "❌ Guest agent NOT configured in Proxmox"
|
||||
echo "Setting agent=1..."
|
||||
qm set $VMID --agent 1
|
||||
echo "✅ Guest agent configured"
|
||||
else
|
||||
echo "✅ Guest agent configured: $AGENT_CONFIG"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# Step 3: Check if package is installed
|
||||
echo "Step 3: Checking qemu-guest-agent Package Installation"
|
||||
echo "--------------------------------------"
|
||||
echo "Attempting to check via qm guest exec..."
|
||||
echo ""
|
||||
|
||||
PACKAGE_CHECK=$(qm guest exec $VMID -- dpkg -l | grep qemu-guest-agent 2>&1)
|
||||
EXEC_EXIT_CODE=$?
|
||||
|
||||
if [ $EXEC_EXIT_CODE -eq 0 ] && echo "$PACKAGE_CHECK" | grep -q "qemu-guest-agent"; then
|
||||
echo "✅ qemu-guest-agent package IS installed"
|
||||
echo ""
|
||||
echo "Package details:"
|
||||
echo "$PACKAGE_CHECK" | grep qemu-guest-agent
|
||||
echo ""
|
||||
|
||||
# Step 4: Check service status
|
||||
echo "Step 4: Checking Service Status"
|
||||
echo "--------------------------------------"
|
||||
SERVICE_STATUS=$(qm guest exec $VMID -- systemctl status qemu-guest-agent --no-pager 2>&1)
|
||||
if echo "$SERVICE_STATUS" | grep -q "active (running)"; then
|
||||
echo "✅ qemu-guest-agent service IS running"
|
||||
echo ""
|
||||
echo "Service status:"
|
||||
echo "$SERVICE_STATUS" | head -10
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo "✅ SUCCESS: Guest Agent is fully configured and running"
|
||||
echo "=========================================="
|
||||
exit 0
|
||||
elif echo "$SERVICE_STATUS" | grep -q "inactive"; then
|
||||
echo "⚠️ qemu-guest-agent service is installed but NOT running"
|
||||
echo "Attempting to start..."
|
||||
qm guest exec $VMID -- systemctl enable --now qemu-guest-agent
|
||||
sleep 3
|
||||
SERVICE_STATUS=$(qm guest exec $VMID -- systemctl status qemu-guest-agent --no-pager 2>&1)
|
||||
if echo "$SERVICE_STATUS" | grep -q "active (running)"; then
|
||||
echo "✅ Service started successfully"
|
||||
exit 0
|
||||
else
|
||||
echo "❌ Service failed to start"
|
||||
echo "$SERVICE_STATUS"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "⚠️ Could not determine service status"
|
||||
echo "Service status output:"
|
||||
echo "$SERVICE_STATUS"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
elif echo "$PACKAGE_CHECK" | grep -q "No QEMU guest agent configured"; then
|
||||
echo "❌ Guest agent not configured in Proxmox"
|
||||
echo "This should have been fixed in Step 2. Please check manually:"
|
||||
echo " qm config $VMID | grep '^agent:'"
|
||||
exit 1
|
||||
|
||||
elif echo "$PACKAGE_CHECK" | grep -q "QEMU guest agent is not running"; then
|
||||
echo "⚠️ Guest agent configured but service not running"
|
||||
echo "The package may not be installed, or the service isn't started"
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo "PACKAGE INSTALLATION REQUIRED"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
echo "The qemu-guest-agent package needs to be installed inside the VM."
|
||||
echo ""
|
||||
echo "Options:"
|
||||
echo "1. SSH into the VM (if you have the IP and access)"
|
||||
echo "2. Use Proxmox console (qm terminal $VMID or via web UI)"
|
||||
echo ""
|
||||
echo "Then run inside the VM:"
|
||||
echo " sudo apt-get update"
|
||||
echo " sudo apt-get install -y qemu-guest-agent"
|
||||
echo " sudo systemctl enable --now qemu-guest-agent"
|
||||
echo ""
|
||||
|
||||
# Try to get VM IP
|
||||
echo "Attempting to get VM IP address..."
|
||||
VM_IP=$(qm guest exec $VMID -- hostname -I 2>&1 | awk '{print $1}' || echo "")
|
||||
if [ -n "$VM_IP" ] && [ "$VM_IP" != "QEMU" ] && [ "$VM_IP" != "No" ]; then
|
||||
echo "VM IP: $VM_IP"
|
||||
echo ""
|
||||
echo "You can try SSH:"
|
||||
echo " ssh admin@$VM_IP"
|
||||
else
|
||||
echo "Could not get VM IP via guest exec"
|
||||
echo "Use Proxmox console or check network configuration"
|
||||
fi
|
||||
exit 1
|
||||
|
||||
else
|
||||
echo "❌ qemu-guest-agent package is NOT installed"
|
||||
echo ""
|
||||
echo "Error details:"
|
||||
echo "$PACKAGE_CHECK"
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo "PACKAGE INSTALLATION REQUIRED"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
echo "The qemu-guest-agent package needs to be installed inside the VM."
|
||||
echo ""
|
||||
echo "Options:"
|
||||
echo "1. SSH into the VM (if you have the IP and access)"
|
||||
echo "2. Use Proxmox console (qm terminal $VMID or via web UI)"
|
||||
echo ""
|
||||
echo "Then run inside the VM:"
|
||||
echo " sudo apt-get update"
|
||||
echo " sudo apt-get install -y qemu-guest-agent"
|
||||
echo " sudo systemctl enable --now qemu-guest-agent"
|
||||
echo ""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user