diff --git a/VERSION b/VERSION index 88c5fb8..bc80560 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.4.0 +1.5.0 diff --git a/install.sh b/install.sh index 49f75ca..6c11aca 100755 --- a/install.sh +++ b/install.sh @@ -33,10 +33,10 @@ if [ -z "${NETBIRD_TG_REEXEC:-}" ] && [ ! -t 0 ] && [ -p /dev/stdin ]; then # ausfuehren wie bisher (dann bleibt das Risiko, aber es laeuft). _dl=0 if command -v curl >/dev/null 2>&1; then - curl -fsSL "$_src/install.sh" -o "$_self" 2>/dev/null && [ -s "$_self" ] && _dl=1 + curl -fsSL -m 30 --connect-timeout 10 "$_src/install.sh" -o "$_self" 2>/dev/null && [ -s "$_self" ] && _dl=1 fi if [ "$_dl" -eq 0 ] && command -v wget >/dev/null 2>&1; then - wget -q -O "$_self" "$_src/install.sh" 2>/dev/null && [ -s "$_self" ] && _dl=1 + timeout 30 wget -q -O "$_self" "$_src/install.sh" 2>/dev/null && [ -s "$_self" ] && _dl=1 fi if [ "$_dl" -eq 0 ] && command -v busybox >/dev/null 2>&1; then busybox wget -q -O "$_self" "$_src/install.sh" 2>/dev/null && [ -s "$_self" ] && _dl=1 @@ -497,7 +497,7 @@ install_apt() { command -v gpg >/dev/null || { apt-get update -qq; apt-get install $APT_OPTS gnupg >/dev/null; } command -v curl >/dev/null || apt-get install $APT_OPTS curl >/dev/null mkdir -p /etc/apt/keyrings - curl -fsSL https://repos.influxdata.com/influxdata-archive.key | gpg --dearmor --yes -o /etc/apt/keyrings/influxdata-archive.gpg + curl -fsSL -m 30 --connect-timeout 10 https://repos.influxdata.com/influxdata-archive.key | gpg --dearmor --yes -o /etc/apt/keyrings/influxdata-archive.gpg echo "deb [signed-by=/etc/apt/keyrings/influxdata-archive.gpg] https://repos.influxdata.com/debian stable main" > /etc/apt/sources.list.d/influxdata.list apt-get update -qq apt-get install $APT_OPTS telegraf >/dev/null @@ -524,7 +524,7 @@ install_static() { TB="telegraf-${TELEGRAF_VERSION}_linux_${ARCH}.tar.gz" log "Statisches Binary $TB …" TMP="$(mktemp -d)" - curl -fsSL "https://dl.influxdata.com/telegraf/releases/$TB" -o "$TMP/t.tgz" + curl -fsSL -m 120 --connect-timeout 10 "https://dl.influxdata.com/telegraf/releases/$TB" -o "$TMP/t.tgz" tar -xzf "$TMP/t.tgz" -C "$TMP" install -m 0755 "$TMP"/telegraf-*/usr/bin/telegraf /usr/local/bin/telegraf rm -rf "$TMP" @@ -595,17 +595,28 @@ fi # Domain-Ordner erben das Recht automatisch. grant_apache_log_access() { [ "$HAS_APACHE" -eq 1 ] || return 0 + # Fortschritt melden: ohne diese Zeile sah der Lauf wie ein Haenger aus, + # weil zwischen "Telegraf bereits installiert" und der naechsten Meldung + # ein apt-Aufruf mit Netzwerkzugriff liegt (kann bis zu 3 Minuten dauern). + log "Log-Leserechte: pruefe/ergaenze ACL fuer 'telegraf' (kann etwas dauern) …" _u="telegraf" id "$_u" >/dev/null 2>&1 || return 0 if ! command -v setfacl >/dev/null 2>&1; then # acl-Paket nachziehen, sonst ist die Rechtevergabe nicht moeglich. # Alle Paketmanager mit /dev/null; then - NEEDRESTART_MODE=a DEBIAN_FRONTEND=noninteractive \ + apt-get update -qq /dev/null 2>&1 || true + timeout 180 env NEEDRESTART_MODE=a DEBIAN_FRONTEND=noninteractive \ apt-get install -y -qq acl /dev/null 2>&1 || true - elif command -v dnf >/dev/null; then dnf install -y -q acl /dev/null 2>&1 || true - elif command -v yum >/dev/null; then yum install -y -q acl /dev/null 2>&1 || true - elif command -v apk >/dev/null; then apk add --no-cache -q acl /dev/null 2>&1 || true + elif command -v dnf >/dev/null; then + timeout 180 dnf install -y -q acl /dev/null 2>&1 || true + elif command -v yum >/dev/null; then + timeout 180 yum install -y -q acl /dev/null 2>&1 || true + elif command -v apk >/dev/null; then + timeout 180 apk add --no-cache -q acl /dev/null 2>&1 || true fi fi if ! command -v setfacl >/dev/null 2>&1; then @@ -704,7 +715,20 @@ APACHE_LOG='$APACHE_LOG' EOF umask 022 -fetch() { curl -fsSL "$REPO_RAW/$1" -o "$2" || die "Download $1 fehlgeschlagen."; } +# Jeder Download MIT Timeout: ohne -m wartet curl unbegrenzt, wenn das Netz +# haengt (NetBird-Tunnel, DNS). Der Installer bliebe dann nach der letzten +# Erfolgsmeldung stehen — ohne Fehler, ohne Ende. Genau das passierte auf x14. +fetch() { + _tries=3 + while [ "$_tries" -gt 0 ]; do + if curl -fsSL -m 30 --connect-timeout 10 "$REPO_RAW/$1" -o "$2" 2>/dev/null; then + return 0 + fi + _tries=$((_tries - 1)) + [ "$_tries" -gt 0 ] && sleep 2 + done + die "Download $1 fehlgeschlagen nach 3 Versuchen ($REPO_RAW/$1)." +} # Ersatz fuer envsubst, falls gettext fehlt (Minimal-Container, schlanke # Alpine-/Rocky-Installationen). Ersetzt nur die uebergebenen Variablennamen —