argus/src/sys/tests/scripts/11_metric_node_install.sh

51 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
TEST_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
if [[ -f "$TEST_ROOT/.env" ]]; then
# shellcheck source=/dev/null
source "$TEST_ROOT/.env"
fi
CONTAINER="argus-metric-test-node"
if ! docker ps --format '{{.Names}}' | grep -q "^${CONTAINER}$"; then
echo "[SYS-METRIC] 容器 ${CONTAINER} 未运行,无法执行安装" >&2
exit 1
fi
FTP_HOST="${FTP_SERVER:-172.29.0.40}"
FTP_USER="${FTP_USER:-ftpuser}"
FTP_PASSWORD="${FTP_PASSWORD:-ZGClab1234!}"
FTP_PORT="${FTP_PORT:-21}"
echo "[SYS-METRIC] 在 ${CONTAINER} 内执行安装 (FTP: ${FTP_HOST}:${FTP_PORT})"
docker exec \
-e FTP_HOST="$FTP_HOST" \
-e FTP_USER="$FTP_USER" \
-e FTP_PASSWORD="$FTP_PASSWORD" \
-e FTP_PORT="$FTP_PORT" \
"$CONTAINER" bash -c '
set -e
if ! command -v curl &>/dev/null; then
echo "[SYS-METRIC] curl 未安装,开始安装依赖..."
apt-get update >/dev/null && apt-get install -y curl >/dev/null
fi
cd /tmp
echo "[SYS-METRIC] 下载 setup.sh..."
curl -u "${FTP_USER}:${FTP_PASSWORD}" "ftp://${FTP_HOST}:${FTP_PORT}/setup.sh" -o setup.sh
echo "[SYS-METRIC] 执行安装..."
chmod +x setup.sh
bash setup.sh --server "${FTP_HOST}" --user "${FTP_USER}" --password "${FTP_PASSWORD}" --port "${FTP_PORT}"
echo "[SYS-METRIC] 安装完成"
'
echo "[SYS-METRIC] Metric test node 安装流程完成"