Newer
Older
homeassistant-infra / scripts / create-haos-community.sh
#!/bin/bash
#
# Wrapper dla community HAOS script z automatycznymi odpowiedziami
# Użycie: ./create-haos-community.sh [test|prod]
#

set -e

ENVIRONMENT="${1:-test}"
PROXMOX_HOST="192.168.50.200"
PROXMOX_PASS="QWer!@34"

if [ "$ENVIRONMENT" = "test" ]; then
    VMID=210
    VM_NAME="haos-test"
    CORES=2
    RAM=4096
    DISK=32
elif [ "$ENVIRONMENT" = "prod" ]; then
    VMID=211
    VM_NAME="haos-prod"
    CORES=4
    RAM=6144
    DISK=64
else
    echo "❌ Użycie: $0 [test|prod]"
    exit 1
fi

echo "======================================"
echo "🏠 Tworzenie Home Assistant OS VM"
echo "======================================"
echo "Environment: $ENVIRONMENT"
echo "VM ID: $VMID"
echo "Name: $VM_NAME"
echo "CPU: $CORES cores"
echo "RAM: ${RAM}MB"
echo "Disk: ${DISK}GB"
echo "======================================"
echo ""

# Pobierz najnowszą wersję HAOS
echo "📥 Pobieranie informacji o najnowszej wersji HAOS..."
HAOS_VERSION=$(curl -s https://api.github.com/repos/home-assistant/operating-system/releases/latest | grep -oP '"tag_name": "\K(.*)(?=")')
echo "   Najnowsza wersja: $HAOS_VERSION"

HAOS_IMAGE_URL="https://github.com/home-assistant/operating-system/releases/download/${HAOS_VERSION}/haos_ova-${HAOS_VERSION}.qcow2.xz"

echo ""
echo "🔧 Tworzenie VM na Proxmox..."

# Skrypt do wykonania na Proxmox
REMOTE_SCRIPT=$(cat <<'EOFSCRIPT'
#!/bin/bash
set -e

VMID="$1"
VM_NAME="$2"
CORES="$3"
RAM="$4"
DISK="$5"
HAOS_IMAGE_URL="$6"
STORAGE="local-lvm"

echo "📦 Pobieranie obrazu HAOS..."
cd /tmp
HAOS_FILE="haos_ova.qcow2"
if [ ! -f "${HAOS_FILE}" ]; then
    wget -q --show-progress "${HAOS_IMAGE_URL}" -O "${HAOS_FILE}.xz"
    echo "📂 Rozpakowywanie..."
    xz -d "${HAOS_FILE}.xz"
fi

echo "🔨 Tworzenie VM..."
qm create ${VMID} \
    --name ${VM_NAME} \
    --cores ${CORES} \
    --memory ${RAM} \
    --net0 virtio,bridge=vmbr0 \
    --ostype l26 \
    --scsihw virtio-scsi-pci

echo "💾 Importowanie dysku..."
qm importdisk ${VMID} /tmp/${HAOS_FILE} ${STORAGE}

echo "⚙️ Konfiguracja VM..."
qm set ${VMID} --scsi0 ${STORAGE}:vm-${VMID}-disk-0
qm set ${VMID} --boot c --bootdisk scsi0
qm set ${VMID} --agent enabled=1
qm set ${VMID} --serial0 socket --vga serial0
qm set ${VMID} --onboot 1

echo "📦 Rozszerzanie dysku do ${DISK}GB..."
qm resize ${VMID} scsi0 ${DISK}G

echo "🚀 Uruchamianie VM..."
qm start ${VMID}

echo "🧹 Czyszczenie..."
rm -f /tmp/${HAOS_FILE}*

echo ""
echo "✅ VM utworzone pomyślnie!"
echo "   ID: ${VMID}"
echo "   Nazwa: ${VM_NAME}"
echo ""
echo "⏳ Czekaj 10-15 minut na pierwsze uruchomienie"
echo "🌐 Dostęp przez Proxmox console lub czekaj na DHCP"
EOFSCRIPT
)

# Wykonaj na Proxmox
sshpass -p "$PROXMOX_PASS" ssh -o StrictHostKeyChecking=no root@${PROXMOX_HOST} "bash -s" <<< "$REMOTE_SCRIPT" "$VMID" "$VM_NAME" "$CORES" "$RAM" "$DISK" "$HAOS_IMAGE_URL"

echo ""
echo "======================================"
echo "✅ INSTALACJA ZAKOŃCZONA"
echo "======================================"
echo ""
echo "📊 Sprawdź VM:"
echo "   ssh root@${PROXMOX_HOST} 'qm status ${VMID}'"
echo ""
echo "🌐 Po uruchomieniu sprawdź IP:"
echo "   ssh root@${PROXMOX_HOST} 'qm guest cmd ${VMID} network-get-interfaces'"
echo ""
echo "💡 Lub przypisz statyczne IP przez Proxmox/Router"
echo "======================================"