Add deployment script for net_alerter daemon
This commit is contained in:
Executable
+69
@@ -0,0 +1,69 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Deploy net_alerter daemon to target host
|
||||||
|
# Usage: ./deploy-daemon.sh [user@host] [remote-dir]
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
TARGET_HOST="${1:-root@10.0.0.0}"
|
||||||
|
REMOTE_DIR="${2:-/opt/net_alerter}"
|
||||||
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||||
|
SCRIPT="$SCRIPT_DIR/net_alerter.py"
|
||||||
|
SERVICE="$SCRIPT_DIR/net_alerter.service"
|
||||||
|
|
||||||
|
if [[ ! -f "$SCRIPT" ]]; then
|
||||||
|
echo "[error] net_alerter.py not found at $SCRIPT"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -f "$SERVICE" ]]; then
|
||||||
|
echo "[error] net_alerter.service not found at $SERVICE"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "[*] Deploying to $TARGET_HOST..."
|
||||||
|
|
||||||
|
# Create directory
|
||||||
|
ssh "$TARGET_HOST" "mkdir -p $REMOTE_DIR && ls -la $REMOTE_DIR"
|
||||||
|
|
||||||
|
# Copy daemon script
|
||||||
|
echo "[*] Copying daemon script..."
|
||||||
|
scp "$SCRIPT" "$TARGET_HOST:$REMOTE_DIR/net_alerter.py"
|
||||||
|
|
||||||
|
# Copy systemd unit
|
||||||
|
echo "[*] Copying systemd unit..."
|
||||||
|
scp "$SERVICE" "$TARGET_HOST:/etc/systemd/system/net_alerter.service"
|
||||||
|
|
||||||
|
# If .env doesn't exist, create a template
|
||||||
|
echo "[*] Checking for .env..."
|
||||||
|
ssh "$TARGET_HOST" "
|
||||||
|
if [[ ! -f $REMOTE_DIR/.env ]]; then
|
||||||
|
cat > $REMOTE_DIR/.env <<'EOF'
|
||||||
|
MATRIX_HOMESERVER=https://m.example.org
|
||||||
|
MATRIX_ACCESS_TOKEN=
|
||||||
|
MATRIX_ROOM_ID=
|
||||||
|
EOF
|
||||||
|
chmod 600 $REMOTE_DIR/.env
|
||||||
|
echo '[warn] Created .env template - update MATRIX_ACCESS_TOKEN and MATRIX_ROOM_ID'
|
||||||
|
else
|
||||||
|
echo '[ok] .env exists'
|
||||||
|
fi
|
||||||
|
"
|
||||||
|
|
||||||
|
# Remove old cron if present
|
||||||
|
echo "[*] Removing old cron entries..."
|
||||||
|
ssh "$TARGET_HOST" "crontab -l 2>/dev/null | grep -v net_alerter | crontab - 2>/dev/null || true"
|
||||||
|
|
||||||
|
# Enable and start service
|
||||||
|
echo "[*] Enabling and starting service..."
|
||||||
|
ssh "$TARGET_HOST" "
|
||||||
|
systemctl daemon-reload
|
||||||
|
systemctl enable net_alerter
|
||||||
|
systemctl restart net_alerter
|
||||||
|
sleep 3
|
||||||
|
systemctl status net_alerter --no-pager
|
||||||
|
"
|
||||||
|
|
||||||
|
echo "[*] Checking logs..."
|
||||||
|
ssh "$TARGET_HOST" "journalctl -u net_alerter -n 20 --no-pager"
|
||||||
|
|
||||||
|
echo "[done] net_alerter daemon deployed and running"
|
||||||
Reference in New Issue
Block a user