Testserver-Installation optional machen (--with-testserver)
This commit is contained in:
+60
-17
@@ -7,17 +7,27 @@
|
||||
# aktualisiert.
|
||||
#
|
||||
# Nutzung (als root, im Verzeichnis mit allen Repo-Dateien):
|
||||
# sudo ./install_aria_geoblock.sh [ZIELVERZEICHNIS]
|
||||
# sudo ./install_aria_geoblock.sh [--with-testserver] [ZIELVERZEICHNIS]
|
||||
#
|
||||
# Installiert ausserdem optional einen kleinen Test-Webserver
|
||||
# (aria_geoblock_testserver.py + aria-geoblock-testserver.service), gegen
|
||||
# den man von aussen connecten kann um die Geoblocking-Regeln zu pruefen.
|
||||
# Der kleine Test-Webserver (aria_geoblock_testserver.py +
|
||||
# aria-geoblock-testserver.service), gegen den man von aussen connecten
|
||||
# kann um die Geoblocking-Regeln zu pruefen, wird NUR installiert wenn
|
||||
# die Option --with-testserver angegeben wird. Ohne die Option passiert
|
||||
# in Sachen Testserver gar nichts (kein Copy, kein systemd-Unit, kein
|
||||
# offener Port).
|
||||
#
|
||||
# Beispiele:
|
||||
# sudo ./install_aria_geoblock.sh
|
||||
# sudo ./install_aria_geoblock.sh --with-testserver
|
||||
# sudo ./install_aria_geoblock.sh --with-testserver /opt/aria-geoblock
|
||||
# sudo ./install_aria_geoblock.sh /opt/aria-geoblock
|
||||
#
|
||||
# Benoetigt im selben Verzeichnis:
|
||||
# aria_geoblock.py
|
||||
# aria_geoblock.ini
|
||||
# aria-geoblock.service
|
||||
# aria-geoblock.timer
|
||||
# (nur bei --with-testserver:)
|
||||
# aria_geoblock_testserver.py
|
||||
# aria-geoblock-testserver.service
|
||||
#
|
||||
@@ -31,11 +41,32 @@ if [[ $EUID -ne 0 ]]; then
|
||||
fi
|
||||
|
||||
SRC_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
INSTALL_DIR="${1:-/opt/aria-geoblock}"
|
||||
|
||||
WITH_TESTSERVER=0
|
||||
INSTALL_DIR=""
|
||||
for arg in "$@"; do
|
||||
case "$arg" in
|
||||
--with-testserver)
|
||||
WITH_TESTSERVER=1
|
||||
;;
|
||||
-h|--help)
|
||||
grep '^# ' "${BASH_SOURCE[0]}" | sed 's/^# \{0,1\}//'
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
INSTALL_DIR="$arg"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
INSTALL_DIR="${INSTALL_DIR:-/opt/aria-geoblock}"
|
||||
LOG_DIR="/var/log/aria_geoblock"
|
||||
|
||||
for f in aria_geoblock.py aria_geoblock.ini aria-geoblock.service aria-geoblock.timer \
|
||||
aria_geoblock_testserver.py aria-geoblock-testserver.service; do
|
||||
REQUIRED_FILES=(aria_geoblock.py aria_geoblock.ini aria-geoblock.service aria-geoblock.timer)
|
||||
if [[ "$WITH_TESTSERVER" -eq 1 ]]; then
|
||||
REQUIRED_FILES+=(aria_geoblock_testserver.py aria-geoblock-testserver.service)
|
||||
fi
|
||||
|
||||
for f in "${REQUIRED_FILES[@]}"; do
|
||||
if [[ ! -f "$SRC_DIR/$f" ]]; then
|
||||
echo "FEHLER: $f fehlt in $SRC_DIR - bitte komplettes Repo verwenden." >&2
|
||||
exit 1
|
||||
@@ -67,20 +98,28 @@ echo "==> Lege Log-Verzeichnis an: $LOG_DIR"
|
||||
mkdir -p "$LOG_DIR"
|
||||
chmod 750 "$LOG_DIR"
|
||||
|
||||
echo "==> Installiere Test-Webserver nach $INSTALL_DIR"
|
||||
cp "$SRC_DIR/aria_geoblock_testserver.py" "$INSTALL_DIR/aria_geoblock_testserver.py"
|
||||
chmod 755 "$INSTALL_DIR/aria_geoblock_testserver.py"
|
||||
|
||||
echo "==> Installiere systemd-Units"
|
||||
echo "==> Installiere systemd-Units (Geoblock-Timer)"
|
||||
sed "s#__INSTALL_DIR__#$INSTALL_DIR#g" "$SRC_DIR/aria-geoblock.service" \
|
||||
> /etc/systemd/system/aria-geoblock.service
|
||||
cp "$SRC_DIR/aria-geoblock.timer" /etc/systemd/system/aria-geoblock.timer
|
||||
sed "s#__INSTALL_DIR__#$INSTALL_DIR#g" "$SRC_DIR/aria-geoblock-testserver.service" \
|
||||
> /etc/systemd/system/aria-geoblock-testserver.service
|
||||
|
||||
if [[ "$WITH_TESTSERVER" -eq 1 ]]; then
|
||||
echo "==> --with-testserver gesetzt: installiere Test-Webserver nach $INSTALL_DIR"
|
||||
cp "$SRC_DIR/aria_geoblock_testserver.py" "$INSTALL_DIR/aria_geoblock_testserver.py"
|
||||
chmod 755 "$INSTALL_DIR/aria_geoblock_testserver.py"
|
||||
|
||||
sed "s#__INSTALL_DIR__#$INSTALL_DIR#g" "$SRC_DIR/aria-geoblock-testserver.service" \
|
||||
> /etc/systemd/system/aria-geoblock-testserver.service
|
||||
else
|
||||
echo "==> Test-Webserver wird NICHT installiert (Option --with-testserver nicht angegeben)."
|
||||
fi
|
||||
|
||||
systemctl daemon-reload
|
||||
systemctl enable --now aria-geoblock.timer
|
||||
systemctl enable --now aria-geoblock-testserver.service
|
||||
|
||||
if [[ "$WITH_TESTSERVER" -eq 1 ]]; then
|
||||
systemctl enable --now aria-geoblock-testserver.service
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "==> Fertig."
|
||||
@@ -89,6 +128,10 @@ echo " Jetzt sofort testen: systemctl start aria-geoblock.service && journal
|
||||
echo " Timer-Status: systemctl list-timers aria-geoblock.timer"
|
||||
echo " Naechste/letzte Läufe: systemctl status aria-geoblock.timer"
|
||||
echo " Log-Datei: $LOG_DIR/aria_geoblock.log"
|
||||
echo " Test-Webserver: systemctl status aria-geoblock-testserver.service"
|
||||
echo " Port/Bind/Log siehe [testserver] in $INSTALL_DIR/aria_geoblock.ini"
|
||||
if [[ "$WITH_TESTSERVER" -eq 1 ]]; then
|
||||
echo " Test-Webserver: systemctl status aria-geoblock-testserver.service"
|
||||
echo " Port/Bind/Log siehe [testserver] in $INSTALL_DIR/aria_geoblock.ini"
|
||||
else
|
||||
echo " Test-Webserver: nicht installiert (spaeter nachruesten mit: sudo $0 --with-testserver $INSTALL_DIR)"
|
||||
fi
|
||||
echo " checkmk-Plugin: siehe aria_geoblock_checkmk im Repo (manuell kopieren, README beachten)"
|
||||
|
||||
Reference in New Issue
Block a user