[#2] agent使用pyinstaller打包成二进制可执行文件,通过环境变量指定master endpoint和上报间隔

This commit is contained in:
2025-09-24 08:14:55 +00:00
parent bc016826f1
commit fbe6def185
20 changed files with 254 additions and 267 deletions

View File

@@ -20,25 +20,23 @@ mkdir -p "$MASTER_PRIVATE_DIR"
mkdir -p "$METRIC_PRIVATE_DIR"
mkdir -p "$TMP_ROOT"
cat > "$AGENT_CONFIG_DIR/config" <<CONFIG
HOSTNAME=$AGENT_HOSTNAME
NODE_FILE=/private/argus/agent/$AGENT_HOSTNAME/node.json
VERSION=1.1.0
MASTER_ENDPOINT=http://master:3000
REPORT_INTERVAL_SECONDS=2
SUBMODULE_HEALTH_FILE_DIR=/private/argus/agent/health/{hostname}/
GPU_NUMBER=
IP_OVERRIDE=
CONFIG
touch "$AGENT_HEALTH_DIR/.keep"
pushd "$MASTER_ROOT" >/dev/null
./scripts/build_images.sh --tag argus-master:dev
popd >/dev/null
AGENT_BINARY="$AGENT_ROOT/dist/argus-agent"
pushd "$AGENT_ROOT" >/dev/null
./scripts/build_images.sh --tag argus-agent:dev
./scripts/build_binary.sh
popd >/dev/null
if [[ ! -x "$AGENT_BINARY" ]]; then
echo "[ERROR] Agent binary not found at $AGENT_BINARY" >&2
exit 1
fi
echo "$AGENT_BINARY" > "$TMP_ROOT/agent_binary_path"
echo "[INFO] Agent E2E bootstrap complete"

View File

@@ -4,6 +4,19 @@ set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
TEST_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
TMP_ROOT="$TEST_ROOT/tmp"
if [[ ! -f "$TMP_ROOT/agent_binary_path" ]]; then
echo "[ERROR] Agent binary path missing; run 01_bootstrap.sh first" >&2
exit 1
fi
AGENT_BINARY="$(cat "$TMP_ROOT/agent_binary_path")"
if [[ ! -x "$AGENT_BINARY" ]]; then
echo "[ERROR] Agent binary not executable: $AGENT_BINARY" >&2
exit 1
fi
compose() {
if docker compose version >/dev/null 2>&1; then
docker compose "$@"

View File

@@ -10,6 +10,17 @@ AGENT_HOSTNAME="dev-e2euser-e2einst-pod-0"
NETWORK_NAME="tests_default"
NEW_AGENT_IP="172.28.0.200"
if [[ ! -f "$TMP_ROOT/agent_binary_path" ]]; then
echo "[ERROR] Agent binary path missing; rerun bootstrap" >&2
exit 1
fi
AGENT_BINARY="$(cat "$TMP_ROOT/agent_binary_path")"
if [[ ! -x "$AGENT_BINARY" ]]; then
echo "[ERROR] Agent binary not executable: $AGENT_BINARY" >&2
exit 1
fi
compose() {
if docker compose version >/dev/null 2>&1; then
docker compose "$@"
@@ -57,14 +68,17 @@ if ! docker run -d \
--ip "$NEW_AGENT_IP" \
-v "$AGENT_DIR:/private/argus/agent/$AGENT_HOSTNAME" \
-v "$HEALTH_DIR:/private/argus/agent/health/$AGENT_HOSTNAME" \
argus-agent:dev \
-v "$AGENT_BINARY:/usr/local/bin/argus-agent:ro" \
-e MASTER_ENDPOINT=http://master:3000 \
-e REPORT_INTERVAL_SECONDS=2 \
ubuntu:24.04 \
sleep 300 >/dev/null; then
echo "[ERROR] Failed to start agent container with custom IP" >&2
exit 1
fi
# 在容器内启动真实 agent 进程
if ! docker exec -d argus-agent-e2e python -m app.main; then
if ! docker exec -d argus-agent-e2e /usr/local/bin/argus-agent; then
echo "[ERROR] Failed to spawn agent process inside container" >&2
exit 1
fi