mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2025-08-15 09:22:23 +00:00
Update upgrade_pve8_topve9.sh
This commit is contained in:
parent
1523b6b8a8
commit
8466a8e21e
@ -2,25 +2,13 @@
|
|||||||
# ==========================================================
|
# ==========================================================
|
||||||
# ProxMenuX - Upgrade PVE 8 → 9 (Simplified, per official guide)
|
# ProxMenuX - Upgrade PVE 8 → 9 (Simplified, per official guide)
|
||||||
# ==========================================================
|
# ==========================================================
|
||||||
# Author : MacRimi
|
# Author : MacRimi
|
||||||
# License : MIT
|
# Copyright : (c) 2024 MacRimi
|
||||||
# Version : 1.9
|
# License : MIT (https://raw.githubusercontent.com/MacRimi/ProxMenux/main/LICENSE)
|
||||||
# Updated : 2025-08-10
|
# Version : 1.0
|
||||||
# Description:
|
# Last Updated: 14/08/2025
|
||||||
# - Automates the official upgrade from Proxmox VE 8 to 9 (Debian Trixie).
|
|
||||||
# - Spinner-safe UI: each msg_info is closed by msg_ok/msg_warn/msg_error.
|
|
||||||
# - Choose run mode at start: Interactive, Interactive (Expert), Unattended.
|
|
||||||
# - In ALL modes, output is streamed to terminal; Unattended shows everything but asks nothing.
|
|
||||||
# - Cluster-aware pre-upgrade (auto/manual).
|
|
||||||
# - Ceph handling: enforce 19.x (Squid) only if hyper-converged (flags to relax).
|
|
||||||
# - Default repositories: no-subscription (enterprise only if --enterprise).
|
|
||||||
# - Enterprise repo fallback: detect 401 and switch to no-subscription if needed.
|
|
||||||
# - Pre-flight guard: simulate upgrade to ensure 'proxmox-ve' is not removed.
|
|
||||||
# - After upgrading to PVE 9, disable translate() to avoid Python/googletrans issues.
|
|
||||||
# ==========================================================
|
# ==========================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
|
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
|
||||||
BASE_DIR="/usr/local/share/proxmenux"
|
BASE_DIR="/usr/local/share/proxmenux"
|
||||||
UTILS_FILE="$BASE_DIR/utils.sh"
|
UTILS_FILE="$BASE_DIR/utils.sh"
|
||||||
@ -61,77 +49,108 @@ done
|
|||||||
|
|
||||||
|
|
||||||
ask_run_mode() {
|
ask_run_mode() {
|
||||||
export NCURSES_NO_UTF8_ACS=1
|
|
||||||
|
|
||||||
if [[ "${ASSUME_YES:-0}" == "1" ]]; then
|
if [[ "${ASSUME_YES:-0}" == "1" ]]; then
|
||||||
msg_ok "$(translate "Run mode: Unattended")"
|
msg_ok "$(translate "Run mode: Unattended")"
|
||||||
else
|
|
||||||
if command -v whiptail >/dev/null 2>&1; then
|
|
||||||
|
|
||||||
local title text choice
|
|
||||||
title="$(translate "Select run mode")"; [[ -z "$title" ]] && title="Select run mode"
|
|
||||||
text="$(translate "Choose how to perform the upgrade:")"; [[ -z "$text" ]] && text="Choose how to perform the upgrade:"
|
|
||||||
title=${title//$'\r'/}; title=${title//$'\n'/' '}
|
|
||||||
text=${text//$'\r'/}; text=${text//$'\n'/' '}
|
|
||||||
|
|
||||||
if ! choice=$(
|
|
||||||
whiptail --title "$title" \
|
|
||||||
--menu "$text" 17 78 3 \
|
|
||||||
"unattended" "$(translate "Automatic/Unattended")" \
|
|
||||||
"interactive" "$(translate "Interactive (guided, prompts visible)")" \
|
|
||||||
"manual" "$(translate "Manual upgrade guide step by step")" \
|
|
||||||
3>&1 1>&2 2>&3
|
|
||||||
); then
|
|
||||||
show_proxmenux_logo || true
|
|
||||||
msg_warn "$(translate "Action canceled by user")"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
case "$choice" in
|
|
||||||
unattended)
|
|
||||||
ASSUME_YES="1"
|
|
||||||
msg_info2 "$(translate "Run mode selected: Unattended")"
|
|
||||||
;;
|
|
||||||
manual)
|
|
||||||
local url="$REPO_URL/scripts/utilities/proxmox-upgrade-pve8-to-pve9-manual-guide.sh"
|
|
||||||
if command -v curl >/dev/null 2>&1; then
|
|
||||||
bash <(curl -fsSL "$url")
|
|
||||||
else
|
|
||||||
bash <(wget -qO- "$url")
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
msg_info2 "$(translate "Run mode selected: Interactive")"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
else
|
|
||||||
printf "%s" "$(translate "Select run mode: [i]nteractive / [u]nattended / [m]anual guide? (default: i): ")"
|
|
||||||
read -r ans
|
|
||||||
case "$ans" in
|
|
||||||
u|U) ASSUME_YES="1"; msg_info2 "$(translate "Run mode selected: Unattended")" ;;
|
|
||||||
m|M)
|
|
||||||
local url="$REPO_URL/scripts/utilities/proxmox-upgrade-pve8-to-pve9-manual-guide.sh"
|
|
||||||
if command -v curl >/dev/null 2>&1; then
|
|
||||||
bash <(curl -fsSL "$url")
|
|
||||||
else
|
|
||||||
bash <(wget -qO- "$url")
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
*) msg_info2 "$(translate "Run mode selected: Interactive")" ;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "${ASSUME_YES:-0}" == "1" ]]; then
|
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
export APT_LISTCHANGES_FRONTEND=none
|
export APT_LISTCHANGES_FRONTEND=none
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if command -v dialog >/dev/null 2>&1; then
|
||||||
|
local title text choice
|
||||||
|
title="$(translate "Select run mode")"; [[ -z "$title" ]] && title="Select run mode"
|
||||||
|
text="$(translate "Choose how to perform the upgrade:")"; [[ -z "$text" ]] && text="Choose how to perform the upgrade:"
|
||||||
|
title=${title//$'\r'/}; title=${title//$'\n'/' '}
|
||||||
|
text=${text//$'\r'/}; text=${text//$'\n'/' '}
|
||||||
|
|
||||||
|
choice=$(
|
||||||
|
dialog --backtitle "ProxMenux" \
|
||||||
|
--title "$title" \
|
||||||
|
--menu "$text" 17 78 3 \
|
||||||
|
1 "$(translate "Automatic/Unattended")" \
|
||||||
|
2 "$(translate "Interactive (guided, prompts visible)")" \
|
||||||
|
3 "$(translate "Manual upgrade guide step by step")" \
|
||||||
|
3>&1 1>&2 2>&3
|
||||||
|
); status=$?
|
||||||
|
|
||||||
|
if [[ $status -ne 0 ]]; then
|
||||||
|
show_proxmenux_logo || true
|
||||||
|
msg_warn "$(translate "Action canceled by user")"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$choice" in
|
||||||
|
1)
|
||||||
|
ASSUME_YES="1"
|
||||||
|
show_proxmenux_logo || true
|
||||||
|
msg_title "$(translate "Upgrade assistant: Proxmox VE 8 → 9 (Trixie)")"
|
||||||
|
msg_info2 "$(translate "Run mode selected: Unattended")"
|
||||||
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
export APT_LISTCHANGES_FRONTEND=none
|
||||||
|
;;
|
||||||
|
3)
|
||||||
|
local url="$REPO_URL/scripts/utilities/proxmox-upgrade-pve8-to-pve9-manual-guide.sh"
|
||||||
|
if command -v curl >/dev/null 2>&1; then
|
||||||
|
bash <(curl -fsSL "$url")
|
||||||
|
else
|
||||||
|
bash <(wget -qO- "$url")
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
show_proxmenux_logo || true
|
||||||
|
msg_title "$(translate "Upgrade assistant: Proxmox VE 8 → 9 (Trixie)")"
|
||||||
|
msg_info2 "$(translate "Run mode selected: Interactive")"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
elif command -v whiptail >/dev/null 2>&1; then
|
||||||
|
local choice
|
||||||
|
if ! choice=$(
|
||||||
|
whiptail --title "$(translate "Select run mode")" \
|
||||||
|
--menu "$(translate "Choose how to perform the upgrade:")" 17 78 3 \
|
||||||
|
"1" "$(translate "Automatic/Unattended")" \
|
||||||
|
"2" "$(translate "Interactive (guided, prompts visible)")" \
|
||||||
|
"3" "$(translate "Manual upgrade guide step by step")" \
|
||||||
|
3>&1 1>&2 2>&3
|
||||||
|
); then
|
||||||
|
show_proxmenux_logo || true
|
||||||
|
msg_warn "$(translate "Action canceled by user")"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
case "$choice" in
|
||||||
|
1) ASSUME_YES="1"; msg_info2 "$(translate "Run mode selected: Unattended")"
|
||||||
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
export APT_LISTCHANGES_FRONTEND=none ;;
|
||||||
|
3) local url="$REPO_URL/scripts/utilities/proxmox-upgrade-pve8-to-pve9-manual-guide.sh"
|
||||||
|
if command -v curl >/dev/null 2>&1; then
|
||||||
|
bash <(curl -fsSL "$url")
|
||||||
|
else
|
||||||
|
bash <(wget -qO- "$url")
|
||||||
|
fi ;;
|
||||||
|
*) msg_info2 "$(translate "Run mode selected: Interactive")" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
else
|
||||||
|
printf "%s" "$(translate "Select run mode: [1]unattended / [2]interactive / [3]manual guide? (default: 2): ")"
|
||||||
|
read -r ans
|
||||||
|
case "$ans" in
|
||||||
|
1) ASSUME_YES="1"; msg_info2 "$(translate "Run mode selected: Unattended")"
|
||||||
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
export APT_LISTCHANGES_FRONTEND=none ;;
|
||||||
|
3) local url="$REPO_URL/scripts/utilities/proxmox-upgrade-pve8-to-pve9-manual-guide.sh"
|
||||||
|
if command -v curl >/dev/null 2>&1; then
|
||||||
|
bash <(curl -fsSL "$url") || exit 1
|
||||||
|
else
|
||||||
|
bash <(wget -qO- "$url") || exit 1
|
||||||
|
fi ;;
|
||||||
|
*) msg_info2 "$(translate "Run mode selected: Interactive")" ;;
|
||||||
|
esac
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# ==========================================================
|
# ==========================================================
|
||||||
|
|
||||||
|
|
||||||
@ -439,8 +458,6 @@ check_not_web_terminal() {
|
|||||||
|
|
||||||
if echo "$comm $args" | grep -Eqi 'termproxy|vncshell'; then
|
if echo "$comm $args" | grep -Eqi 'termproxy|vncshell'; then
|
||||||
show_web_terminal_block_msg
|
show_web_terminal_block_msg
|
||||||
show_proxmenux_logo
|
|
||||||
msg_title "$(translate "Upgrade assistant: Proxmox VE 8 → 9 (Trixie)")"
|
|
||||||
msg_warn "$(translate "Upgrade canceled by user")"
|
msg_warn "$(translate "Upgrade canceled by user")"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
@ -451,9 +468,6 @@ check_not_web_terminal() {
|
|||||||
|
|
||||||
ask_run_mode
|
ask_run_mode
|
||||||
|
|
||||||
show_proxmenux_logo || true
|
|
||||||
msg_title "$(translate "Upgrade assistant: Proxmox VE 8 → 9 (Trixie)")"
|
|
||||||
|
|
||||||
check_not_web_terminal
|
check_not_web_terminal
|
||||||
|
|
||||||
|
|
||||||
@ -778,8 +792,6 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------
|
# ---------------------------
|
||||||
# Step 10
|
# Step 10
|
||||||
# ---------------------------
|
# ---------------------------
|
||||||
|
Loading…
x
Reference in New Issue
Block a user