diff --git a/chromium-setup/emmc-provisioning/scripts/deploy-to-proxmox.sh b/chromium-setup/emmc-provisioning/scripts/deploy-to-proxmox.sh index 1c50238..fac5b6c 100755 --- a/chromium-setup/emmc-provisioning/scripts/deploy-to-proxmox.sh +++ b/chromium-setup/emmc-provisioning/scripts/deploy-to-proxmox.sh @@ -10,7 +10,7 @@ # Example: ./deploy-to-proxmox.sh root@10.20.30.152 # # Optional env: -# DEPLOY_ROOTFS_STORAGE=local-lvm — LXC rootfs storage (default: local-lvm) +# DEPLOY_ROOTFS_STORAGE=name — LXC rootfs storage (default: auto-detect: local-lvm, local, local-zfs, or first active) # CM4_BACKUPS_HOST_PATH=/path — host dir for backups; bind-mounted into LXC # DEPLOY_LXC_ROOT_PASSWORD=secret — set root password in LXC and enable SSH # DEPLOY_LXC_SSH_KEY=/path/to/pub — copy this key to LXC root (default: ~/.ssh/id_ed25519.pub or id_rsa.pub) @@ -61,11 +61,29 @@ log "[3/5] Running remote install (host + LXC) ..." ssh "$PROXMOX" "ROOTFS_STORAGE='$ROOTFS_STORAGE' CM4_BACKUPS_HOST_PATH='${CM4_BACKUPS_HOST_PATH:-}' DEPLOY_SSH_KEY_B64='${DEPLOY_SSH_KEY_B64:-}' DEPLOY_LXC_PWD_B64='${DEPLOY_LXC_PWD_B64:-}'" bash -s << 'REMOTE' set -e DEPLOY=/tmp/emmc-provisioning-deploy -ROOTFS_STORAGE="${ROOTFS_STORAGE:-local-lvm}" BACKUPS_HOST_PATH="${CM4_BACKUPS_HOST_PATH:-}" LXC_HOSTNAME="cm4-provisioning" log() { echo "[$(date -Iseconds)] $*"; } +# --- Auto-select LXC rootfs storage if not set or not available --- +_storage_exists() { pvesm status 2>/dev/null | awk -v s="$1" 'NR>1 && $1==s && $3=="active" {exit(0)} END{exit(1)}'; } +if [[ -n "${ROOTFS_STORAGE:-}" ]] && _storage_exists "$ROOTFS_STORAGE"; then + : # use provided and existing storage +else + ROOTFS_STORAGE="" + for cand in local-lvm local local-zfs; do + if _storage_exists "$cand"; then + ROOTFS_STORAGE="$cand" + break + fi + done + if [[ -z "$ROOTFS_STORAGE" ]]; then + ROOTFS_STORAGE=$(pvesm status 2>/dev/null | awk 'NR>1 && $3=="active" {print $1; exit}') + fi + [[ -z "$ROOTFS_STORAGE" ]] && { log "Error: no Proxmox storage found. Run: pvesm status"; exit 1; } + log "Using storage: $ROOTFS_STORAGE" +fi + # --- Find existing LXC by hostname or use next available ID --- CTID="" for id in $(pct list 2>/dev/null | awk 'NR>1 {print $1}'); do