51 lines
1.4 KiB
Bash
Executable File
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 安装流程完成"
|