From 120affbcc52572ec7e0b6fb322700f424c116051 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 25 Nov 2025 18:14:37 +0100 Subject: [PATCH] Add Zabbix version selection to install and update scripts (#9430) Prompts user to select Zabbix version (7.0 LTS, 7.4, or latest) during installation and update. Refactors download logic to use the chosen version, improving flexibility and user control over Zabbix deployment. --- ct/zabbix.sh | 21 ++++++++++++++++----- install/zabbix-install.sh | 23 +++++++++++++++++------ 2 files changed, 33 insertions(+), 11 deletions(-) diff --git a/ct/zabbix.sh b/ct/zabbix.sh index e58ffefbc4..0a023e83e9 100644 --- a/ct/zabbix.sh +++ b/ct/zabbix.sh @@ -46,7 +46,20 @@ function update_script() { systemctl stop "$AGENT_SERVICE" msg_ok "Stopped Services" - msg_info "Updating Zabbix" + read -rp "Choose Zabbix version [1] 7.0 LTS [2] 7.4 (Latest Stable) [3] Latest available (default: 2): " ZABBIX_CHOICE + ZABBIX_CHOICE=${ZABBIX_CHOICE:-2} + case "$ZABBIX_CHOICE" in + 1) ZABBIX_VERSION="7.0" ;; + 2) ZABBIX_VERSION="7.4" ;; + 3) ZABBIX_VERSION=$(curl -fsSL https://repo.zabbix.com/zabbix/ | + grep -oP '(?<=href=")[0-9]+\.[0-9]+(?=/")' | sort -V | tail -n1) ;; + *) + ZABBIX_VERSION="7.4" + echo "Invalid choice. Defaulting to 7.4." + ;; + esac + + msg_info "Updating Zabbix to $ZABBIX_VERSION" mkdir -p /opt/zabbix-backup/ cp /etc/zabbix/zabbix_server.conf /opt/zabbix-backup/ cp /etc/apache2/conf-enabled/zabbix.conf /opt/zabbix-backup/ @@ -54,10 +67,8 @@ function update_script() { rm -Rf /etc/apt/sources.list.d/zabbix.list cd /tmp - curl -fsSL "$(curl -fsSL https://repo.zabbix.com/zabbix/ | - grep -oP '(?<=href=")[0-9]+\.[0-9]+(?=/")' | sort -V | tail -n1 | - xargs -I{} echo "https://repo.zabbix.com/zabbix/{}/release/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian13_all.deb")" \ - -o /tmp/zabbix-release_latest+debian13_all.deb + ZABBIX_DEB_URL="https://repo.zabbix.com/zabbix/${ZABBIX_VERSION}/release/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian13_all.deb" + curl -fsSL "$ZABBIX_DEB_URL" -o /tmp/zabbix-release_latest+debian13_all.deb $STD dpkg -i zabbix-release_latest+debian13_all.deb rm -rf /tmp/zabbix-release_latest+debian13_all.deb $STD apt update diff --git a/install/zabbix-install.sh b/install/zabbix-install.sh index 950eb9d77c..035506e53c 100644 --- a/install/zabbix-install.sh +++ b/install/zabbix-install.sh @@ -15,16 +15,27 @@ update_os PG_VERSION="17" setup_postgresql -msg_info "Installing Zabbix" +read -rp "Choose Zabbix version [1] 7.0 LTS [2] 7.4 (Latest Stable) [3] Latest available (default: 2): " ZABBIX_CHOICE +ZABBIX_CHOICE=${ZABBIX_CHOICE:-2} +case "$ZABBIX_CHOICE" in +1) ZABBIX_VERSION="7.0" ;; +2) ZABBIX_VERSION="7.4" ;; +3) ZABBIX_VERSION=$(curl -fsSL https://repo.zabbix.com/zabbix/ | + grep -oP '(?<=href=")[0-9]+\.[0-9]+(?=/")' | sort -V | tail -n1) ;; +*) + ZABBIX_VERSION="7.4" + echo "Invalid choice. Defaulting to 7.4." + ;; +esac + +msg_info "Installing Zabbix $ZABBIX_VERSION" cd /tmp -curl -fsSL "$(curl -fsSL https://repo.zabbix.com/zabbix/ | - grep -oP '(?<=href=")[0-9]+\.[0-9]+(?=/")' | sort -V | tail -n1 | - xargs -I{} echo "https://repo.zabbix.com/zabbix/{}/release/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian13_all.deb")" \ - -o /tmp/zabbix-release_latest+debian13_all.deb +ZABBIX_DEB_URL="https://repo.zabbix.com/zabbix/${ZABBIX_VERSION}/release/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian13_all.deb" +curl -fsSL "$ZABBIX_DEB_URL" -o /tmp/zabbix-release_latest+debian13_all.deb $STD dpkg -i /tmp/zabbix-release_latest+debian13_all.deb $STD apt update $STD apt install -y zabbix-server-pgsql zabbix-frontend-php php8.4-pgsql zabbix-apache-conf zabbix-sql-scripts -msg_ok "Installed Zabbix" +msg_ok "Installed Zabbix $ZABBIX_VERSION" while true; do read -rp "Which agent do you want to install? [1=agent (classic), 2=agent2 (modern), default=1]: " AGENT_CHOICE