Skip to content

Commit 120affb

Browse files
authored
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.
1 parent ae81caf commit 120affb

File tree

2 files changed

+33
-11
lines changed

2 files changed

+33
-11
lines changed

ct/zabbix.sh

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,18 +46,29 @@ function update_script() {
4646
systemctl stop "$AGENT_SERVICE"
4747
msg_ok "Stopped Services"
4848

49-
msg_info "Updating Zabbix"
49+
read -rp "Choose Zabbix version [1] 7.0 LTS [2] 7.4 (Latest Stable) [3] Latest available (default: 2): " ZABBIX_CHOICE
50+
ZABBIX_CHOICE=${ZABBIX_CHOICE:-2}
51+
case "$ZABBIX_CHOICE" in
52+
1) ZABBIX_VERSION="7.0" ;;
53+
2) ZABBIX_VERSION="7.4" ;;
54+
3) ZABBIX_VERSION=$(curl -fsSL https://repo.zabbix.com/zabbix/ |
55+
grep -oP '(?<=href=")[0-9]+\.[0-9]+(?=/")' | sort -V | tail -n1) ;;
56+
*)
57+
ZABBIX_VERSION="7.4"
58+
echo "Invalid choice. Defaulting to 7.4."
59+
;;
60+
esac
61+
62+
msg_info "Updating Zabbix to $ZABBIX_VERSION"
5063
mkdir -p /opt/zabbix-backup/
5164
cp /etc/zabbix/zabbix_server.conf /opt/zabbix-backup/
5265
cp /etc/apache2/conf-enabled/zabbix.conf /opt/zabbix-backup/
5366
cp -R /usr/share/zabbix/ /opt/zabbix-backup/
5467

5568
rm -Rf /etc/apt/sources.list.d/zabbix.list
5669
cd /tmp
57-
curl -fsSL "$(curl -fsSL https://repo.zabbix.com/zabbix/ |
58-
grep -oP '(?<=href=")[0-9]+\.[0-9]+(?=/")' | sort -V | tail -n1 |
59-
xargs -I{} echo "https://repo.zabbix.com/zabbix/{}/release/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian13_all.deb")" \
60-
-o /tmp/zabbix-release_latest+debian13_all.deb
70+
ZABBIX_DEB_URL="https://repo.zabbix.com/zabbix/${ZABBIX_VERSION}/release/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian13_all.deb"
71+
curl -fsSL "$ZABBIX_DEB_URL" -o /tmp/zabbix-release_latest+debian13_all.deb
6172
$STD dpkg -i zabbix-release_latest+debian13_all.deb
6273
rm -rf /tmp/zabbix-release_latest+debian13_all.deb
6374
$STD apt update

install/zabbix-install.sh

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,27 @@ update_os
1515

1616
PG_VERSION="17" setup_postgresql
1717

18-
msg_info "Installing Zabbix"
18+
read -rp "Choose Zabbix version [1] 7.0 LTS [2] 7.4 (Latest Stable) [3] Latest available (default: 2): " ZABBIX_CHOICE
19+
ZABBIX_CHOICE=${ZABBIX_CHOICE:-2}
20+
case "$ZABBIX_CHOICE" in
21+
1) ZABBIX_VERSION="7.0" ;;
22+
2) ZABBIX_VERSION="7.4" ;;
23+
3) ZABBIX_VERSION=$(curl -fsSL https://repo.zabbix.com/zabbix/ |
24+
grep -oP '(?<=href=")[0-9]+\.[0-9]+(?=/")' | sort -V | tail -n1) ;;
25+
*)
26+
ZABBIX_VERSION="7.4"
27+
echo "Invalid choice. Defaulting to 7.4."
28+
;;
29+
esac
30+
31+
msg_info "Installing Zabbix $ZABBIX_VERSION"
1932
cd /tmp
20-
curl -fsSL "$(curl -fsSL https://repo.zabbix.com/zabbix/ |
21-
grep -oP '(?<=href=")[0-9]+\.[0-9]+(?=/")' | sort -V | tail -n1 |
22-
xargs -I{} echo "https://repo.zabbix.com/zabbix/{}/release/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian13_all.deb")" \
23-
-o /tmp/zabbix-release_latest+debian13_all.deb
33+
ZABBIX_DEB_URL="https://repo.zabbix.com/zabbix/${ZABBIX_VERSION}/release/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian13_all.deb"
34+
curl -fsSL "$ZABBIX_DEB_URL" -o /tmp/zabbix-release_latest+debian13_all.deb
2435
$STD dpkg -i /tmp/zabbix-release_latest+debian13_all.deb
2536
$STD apt update
2637
$STD apt install -y zabbix-server-pgsql zabbix-frontend-php php8.4-pgsql zabbix-apache-conf zabbix-sql-scripts
27-
msg_ok "Installed Zabbix"
38+
msg_ok "Installed Zabbix $ZABBIX_VERSION"
2839

2940
while true; do
3041
read -rp "Which agent do you want to install? [1=agent (classic), 2=agent2 (modern), default=1]: " AGENT_CHOICE

0 commit comments

Comments
 (0)