test runner traffic target
This commit is contained in:
116
setup_traffic_target_server.sh
Normal file
116
setup_traffic_target_server.sh
Normal file
@@ -0,0 +1,116 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
REPO_URL="${REPO_URL:-https://gitea.malmert.de/marcus/mitm-webserver.git}"
|
||||
APP_DIR="${APP_DIR:-/opt/mitm-webserver}"
|
||||
TARGET_SCRIPT_REL="${TARGET_SCRIPT_REL:-tools/traffic-target.sh}"
|
||||
TARGET_SERVICE="${TARGET_SERVICE:-mitm-traffic-target}"
|
||||
|
||||
RUNNER_DIR="${RUNNER_DIR:-/opt/gitea-act-runner}"
|
||||
RUNNER_BIN_URL="${RUNNER_BIN_URL:-https://gitea.com/gitea/act_runner/releases/download/v0.2.13/act_runner-0.2.13-linux-amd64}"
|
||||
RUNNER_INSTANCE_URL="${RUNNER_INSTANCE_URL:-https://gitea.malmert.de/}"
|
||||
RUNNER_NAME="${RUNNER_NAME:-traffic-target-runner}"
|
||||
RUNNER_LABELS="${RUNNER_LABELS:-traffic-target:host}"
|
||||
RUNNER_TOKEN="${RUNNER_TOKEN:-}"
|
||||
|
||||
if [[ -z "$RUNNER_TOKEN" ]]; then
|
||||
echo "RUNNER_TOKEN must be set before running this script." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "==> Update system packages"
|
||||
apt update
|
||||
apt upgrade -y
|
||||
DEBIAN_FRONTEND=noninteractive apt install -y \
|
||||
git \
|
||||
curl \
|
||||
wget \
|
||||
python3 \
|
||||
openssl \
|
||||
socat \
|
||||
iperf3
|
||||
|
||||
echo "==> Setup repository"
|
||||
if [[ ! -d "$APP_DIR/.git" ]]; then
|
||||
git clone "$REPO_URL" "$APP_DIR"
|
||||
else
|
||||
cd "$APP_DIR"
|
||||
git fetch origin main
|
||||
git checkout main
|
||||
git merge --ff-only origin/main
|
||||
fi
|
||||
|
||||
TARGET_SCRIPT_PATH="$APP_DIR/$TARGET_SCRIPT_REL"
|
||||
if [[ ! -x "$TARGET_SCRIPT_PATH" ]]; then
|
||||
chmod +x "$TARGET_SCRIPT_PATH"
|
||||
fi
|
||||
|
||||
echo "==> Setup traffic target systemd service"
|
||||
cat >/etc/systemd/system/${TARGET_SERVICE}.service <<EOL
|
||||
[Unit]
|
||||
Description=MITM Traffic Target
|
||||
After=network-online.target
|
||||
Wants=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
WorkingDirectory=$APP_DIR
|
||||
ExecStart=$TARGET_SCRIPT_PATH
|
||||
Restart=always
|
||||
RestartSec=5
|
||||
User=root
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOL
|
||||
|
||||
systemctl daemon-reload
|
||||
systemctl enable "$TARGET_SERVICE"
|
||||
systemctl restart "$TARGET_SERVICE"
|
||||
|
||||
echo "==> Install Gitea Act Runner"
|
||||
mkdir -p "$RUNNER_DIR"
|
||||
cd "$RUNNER_DIR"
|
||||
|
||||
if [[ ! -x "$RUNNER_DIR/act_runner" ]]; then
|
||||
wget -O act_runner "$RUNNER_BIN_URL"
|
||||
chmod +x act_runner
|
||||
fi
|
||||
|
||||
if [[ ! -f "$RUNNER_DIR/.runner" ]]; then
|
||||
./act_runner register \
|
||||
--instance "$RUNNER_INSTANCE_URL" \
|
||||
--token "$RUNNER_TOKEN" \
|
||||
--name "$RUNNER_NAME" \
|
||||
--labels "$RUNNER_LABELS" \
|
||||
--no-interactive
|
||||
else
|
||||
echo "==> Runner already registered"
|
||||
fi
|
||||
|
||||
echo "==> Setup Gitea Act Runner systemd service"
|
||||
cat >/etc/systemd/system/gitea-act-runner.service <<EOL
|
||||
[Unit]
|
||||
Description=Gitea Actions Runner (act_runner)
|
||||
After=network-online.target
|
||||
Wants=network-online.target
|
||||
|
||||
[Service]
|
||||
ExecStartPre=/bin/sleep 10
|
||||
ExecStart=$RUNNER_DIR/act_runner daemon
|
||||
WorkingDirectory=$RUNNER_DIR
|
||||
Restart=always
|
||||
RestartSec=5
|
||||
User=root
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOL
|
||||
|
||||
systemctl daemon-reload
|
||||
systemctl enable gitea-act-runner
|
||||
systemctl restart gitea-act-runner
|
||||
|
||||
echo "==> Setup complete"
|
||||
echo "Traffic target service: systemctl status ${TARGET_SERVICE}"
|
||||
echo "Act runner service: systemctl status gitea-act-runner"
|
||||
Reference in New Issue
Block a user