Files
proxmox/scripts/move-pve2-vms-to-r630-02.sh
defiQUG b3a8fe4496
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
chore: sync all changes to Gitea
- Config, docs, scripts, and backup manifests
- Submodule refs unchanged (m = modified content in submodules)

Made-with: Cursor
2026-03-02 11:37:34 -08:00

123 lines
4.1 KiB
Bash

#!/usr/bin/env bash
# Move VM configurations from old pve2 node to r630-02
# This will make VMs visible on r630-02 after the node rename
set -euo pipefail
# Load IP configuration
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
source "${PROJECT_ROOT}/config/ip-addresses.conf" 2>/dev/null || true
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR/load-physical-inventory.sh" 2>/dev/null || true
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
NC='\033[0m'
log_info() { echo -e "${BLUE}[INFO]${NC} $1"; }
log_success() { echo -e "${GREEN}[✓]${NC} $1"; }
log_warn() { echo -e "${YELLOW}[⚠]${NC} $1"; }
log_error() { echo -e "${RED}[✗]${NC} $1"; }
log_section() { echo -e "\n${CYAN}=== $1 ===${NC}\n"; }
ML110_IP="${PROXMOX_HOST_ML110:-192.168.11.10}"
ML110_PASS="${PROXMOX_PASS_ML110:-L@kers2010}"
log_section "Move VM Configs from pve2 to r630-02"
log_warn "This will move VM configuration files from /etc/pve/nodes/pve2/ to /etc/pve/nodes/r630-02/"
log_warn "This will make VMs visible on r630-02 after the node rename"
echo ""
read -p "Continue? (yes/no): " confirm
if [[ "$confirm" != "yes" ]]; then
log_info "Operation cancelled."
exit 0
fi
log_section "Backing up configurations"
sshpass -p "$ML110_PASS" ssh -o StrictHostKeyChecking=no root@"$ML110_IP" bash <<'ENDSSH'
# Backup pve2 directory
if [ -d /etc/pve/nodes/pve2 ]; then
cp -r /etc/pve/nodes/pve2 /etc/pve/nodes/pve2.backup.$(date +%Y%m%d_%H%M%S)
echo "Backup created: /etc/pve/nodes/pve2.backup.*"
fi
# Backup r630-02 directory if it exists
if [ -d /etc/pve/nodes/r630-02 ]; then
cp -r /etc/pve/nodes/r630-02 /etc/pve/nodes/r630-02.backup.$(date +%Y%m%d_%H%M%S)
echo "Backup created: /etc/pve/nodes/r630-02.backup.*"
fi
ENDSSH
log_section "Moving VM configurations"
sshpass -p "$ML110_PASS" ssh -o StrictHostKeyChecking=no root@"$ML110_IP" bash <<'ENDSSH'
# Ensure r630-02 directories exist
mkdir -p /etc/pve/nodes/r630-02/lxc
mkdir -p /etc/pve/nodes/r630-02/qemu-server
# Move LXC container configs
if [ -d /etc/pve/nodes/pve2/lxc ] && [ "$(ls -A /etc/pve/nodes/pve2/lxc 2>/dev/null)" ]; then
echo "Moving LXC container configs..."
for conf in /etc/pve/nodes/pve2/lxc/*.conf; do
if [ -f "$conf" ]; then
filename=$(basename "$conf")
echo " Moving: $filename"
mv "$conf" /etc/pve/nodes/r630-02/lxc/"$filename"
fi
done
echo "LXC configs moved"
else
echo "No LXC configs to move"
fi
# Move QEMU VM configs
if [ -d /etc/pve/nodes/pve2/qemu-server ] && [ "$(ls -A /etc/pve/nodes/pve2/qemu-server 2>/dev/null)" ]; then
echo "Moving QEMU VM configs..."
for conf in /etc/pve/nodes/pve2/qemu-server/*.conf; do
if [ -f "$conf" ]; then
filename=$(basename "$conf")
echo " Moving: $filename"
mv "$conf" /etc/pve/nodes/r630-02/qemu-server/"$filename"
fi
done
echo "QEMU configs moved"
else
echo "No QEMU configs to move"
fi
echo ""
echo "=== Summary ==="
echo "LXC configs in r630-02: $(ls -1 /etc/pve/nodes/r630-02/lxc/*.conf 2>/dev/null | wc -l)"
echo "QEMU configs in r630-02: $(ls -1 /etc/pve/nodes/r630-02/qemu-server/*.conf 2>/dev/null | wc -l)"
ENDSSH
log_section "Verification"
log_info "Checking VMs on r630-02..."
sshpass -p "password" ssh -o StrictHostKeyChecking=no root@${PROXMOX_HOST_R630_02:-192.168.11.12} bash <<'ENDSSH' 2>/dev/null
echo "=== Containers ==="
pct list 2>/dev/null | head -20
echo ""
echo "=== VMs ==="
qm list 2>/dev/null | head -20
echo ""
echo "=== Config Files ==="
echo "LXC configs: $(ls -1 /etc/pve/nodes/r630-02/lxc/*.conf 2>/dev/null | wc -l)"
echo "QEMU configs: $(ls -1 /etc/pve/nodes/r630-02/qemu-server/*.conf 2>/dev/null | wc -l)"
ENDSSH
log_section "Move Complete"
log_success "VM configurations moved from pve2 to r630-02!"
log_info "VMs should now be visible on r630-02"