Files
Sankofa/scripts/complete-vm-100-verification.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

151 lines
4.1 KiB
Bash
Executable File

#!/bin/bash
# Complete verification and start for VM 100
# Run on Proxmox node: root@ml110-01
set -e
VMID=100
VM_NAME="basic-vm-001"
echo "=========================================="
echo "VM 100 Complete Verification and Start"
echo "=========================================="
echo ""
# Step 1: Check VM status
echo "Step 1: VM Status"
echo "--------------------------------------"
qm status $VMID
echo ""
# Step 2: Verify all critical configurations
echo "Step 2: Critical Configuration Checks"
echo "--------------------------------------"
# Boot order
BOOT_ORDER=$(qm config $VMID | grep '^boot:' || echo "")
if [ -z "$BOOT_ORDER" ]; then
echo "⚠️ Boot order not set - fixing..."
qm set $VMID --boot order=scsi0
echo "✅ Boot order set"
else
echo "✅ Boot order: $BOOT_ORDER"
fi
# Disk configuration
SCSI0=$(qm config $VMID | grep '^scsi0:' || echo "")
if [ -z "$SCSI0" ]; then
echo "❌ ERROR: scsi0 disk not configured!"
exit 1
else
echo "✅ Disk: $SCSI0"
# Check if disk exists
DISK_NAME=$(echo "$SCSI0" | sed -n 's/.*local-lvm:\(vm-[0-9]*-disk-[0-9]*\).*/\1/p')
if [ -n "$DISK_NAME" ]; then
if lvs | grep -q "$DISK_NAME"; then
DISK_SIZE=$(lvs | grep "$DISK_NAME" | awk '{print $4}')
echo " ✅ Disk exists: $DISK_NAME ($DISK_SIZE)"
else
echo " ❌ ERROR: Disk $DISK_NAME not found!"
exit 1
fi
fi
fi
# Cloud-init
IDE2=$(qm config $VMID | grep '^ide2:' || echo "")
CIUSER=$(qm config $VMID | grep '^ciuser:' || echo "")
if [ -z "$IDE2" ]; then
echo "⚠️ Cloud-init drive not configured - fixing..."
qm set $VMID --ide2 local-lvm:cloudinit
echo "✅ Cloud-init drive configured"
else
echo "✅ Cloud-init drive: $IDE2"
fi
if [ -z "$CIUSER" ]; then
echo "⚠️ Cloud-init user not configured - fixing..."
qm set $VMID --ciuser admin
echo "✅ Cloud-init user configured"
else
echo "✅ Cloud-init user: $CIUSER"
fi
IPCONFIG=$(qm config $VMID | grep '^ipconfig0:' || echo "")
if [ -z "$IPCONFIG" ]; then
echo "⚠️ IP config not set - fixing..."
qm set $VMID --ipconfig0 ip=dhcp
echo "✅ IP config set"
else
echo "✅ IP config: $IPCONFIG"
fi
# Network
NET0=$(qm config $VMID | grep '^net0:' || echo "")
if [ -z "$NET0" ]; then
echo "⚠️ Network not configured - fixing..."
qm set $VMID --net0 virtio,bridge=vmbr0
echo "✅ Network configured"
else
echo "✅ Network: $NET0"
fi
# Guest agent (already fixed, but verify)
AGENT=$(qm config $VMID | grep '^agent:' || echo "")
if [ -z "$AGENT" ]; then
echo "⚠️ Guest agent not enabled - fixing..."
qm set $VMID --agent 1
echo "✅ Guest agent enabled"
else
echo "✅ Guest agent: $AGENT"
fi
echo ""
# Step 3: Final configuration summary
echo "Step 3: Final Configuration Summary"
echo "--------------------------------------"
qm config $VMID | grep -E '^agent:|^boot:|^scsi0:|^ide2:|^net0:|^ciuser:' | while read line; do
echo " $line"
done
echo ""
# Step 4: Start VM
echo "Step 4: Starting VM"
echo "--------------------------------------"
CURRENT_STATUS=$(qm status $VMID | awk '{print $2}')
if [ "$CURRENT_STATUS" = "running" ]; then
echo "✅ VM is already running"
else
echo "Current status: $CURRENT_STATUS"
echo "Starting VM..."
qm start $VMID
echo ""
echo "Waiting 5 seconds for initialization..."
sleep 5
echo ""
echo "VM status after start:"
qm status $VMID
fi
echo ""
# Step 5: Monitoring instructions
echo "=========================================="
echo "VM Started - Monitoring Instructions"
echo "=========================================="
echo ""
echo "Monitor from Proxmox node:"
echo " watch -n 2 'qm status $VMID'"
echo ""
echo "Monitor from Kubernetes:"
echo " kubectl get proxmoxvm $VM_NAME -w"
echo ""
echo "Check provider logs:"
echo " kubectl logs -n crossplane-system -l app=crossplane-provider-proxmox --tail=50 -f"
echo ""
echo "Once VM has IP, verify services:"
echo " IP=\$(kubectl get proxmoxvm $VM_NAME -o jsonpath='{.status.networkInterfaces[0].ipAddress}')"
echo " ssh admin@\$IP 'systemctl status qemu-guest-agent chrony unattended-upgrades'"
echo ""