feat: 新增测试节点,用于测试FTP安装包安装流程;修复写入 /etc/resolv.conf 顺序问题导致dns解析有误;

refs #20
This commit is contained in:
sundapeng.sdp
2025-10-14 17:24:35 +08:00
parent 5db6931315
commit 2a79935b7a
5 changed files with 78 additions and 34 deletions

View File

@@ -0,0 +1,6 @@
FROM ubuntu:22.04
RUN apt-get update -qq && \
DEBIAN_FRONTEND=noninteractive apt-get install -y -qq tzdata && \
rm -rf /var/lib/apt/lists/*
ENV TZ=Asia/Shanghai

View File

@@ -15,6 +15,7 @@ services:
container_name: argus-ftp
restart: unless-stopped
environment:
- TZ=Asia/Shanghai
- FTP_BASE_PATH=/private/argus/ftp
- FTP_PASSWORD=${FTP_PASSWORD:-ZGClab1234!}
- DOMAIN=${FTP_DOMAIN:-prom.ftp.argus.com}
@@ -27,6 +28,8 @@ services:
volumes:
- ${DATA_ROOT:-/private}/argus/metric/ftp:/private/argus/ftp
- ${DATA_ROOT:-/private}/argus/etc:/private/argus/etc
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
networks:
default:
ipv4_address: 172.30.0.40
@@ -48,6 +51,7 @@ services:
container_name: argus-prometheus
restart: unless-stopped
environment:
- TZ=Asia/Shanghai
- PROMETHEUS_BASE_PATH=/private/argus/metric/prometheus
- PROMETHEUS_UID=${PROMETHEUS_UID:-2133}
- PROMETHEUS_GID=${PROMETHEUS_GID:-2015}
@@ -56,6 +60,8 @@ services:
volumes:
- ${DATA_ROOT:-/private}/argus/metric/prometheus:/private/argus/metric/prometheus
- ${DATA_ROOT:-/private}/argus/etc:/private/argus/etc
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
networks:
default:
ipv4_address: 172.30.0.41
@@ -76,6 +82,7 @@ services:
container_name: argus-grafana
restart: unless-stopped
environment:
- TZ=Asia/Shanghai
- GRAFANA_BASE_PATH=/private/argus/metric/grafana
- GRAFANA_UID=${GRAFANA_UID:-2133}
- GRAFANA_GID=${GRAFANA_GID:-2015}
@@ -87,6 +94,8 @@ services:
volumes:
- ${DATA_ROOT:-/private}/argus/metric/grafana:/private/argus/metric/grafana
- ${DATA_ROOT:-/private}/argus/etc:/private/argus/etc
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
networks:
default:
ipv4_address: 172.30.0.42
@@ -99,20 +108,29 @@ services:
max-file: "3"
test-node:
image: ubuntu:22.04
build:
context: ./client-test-node/build
dockerfile: Dockerfile
image: argus-metric-test-node:latest
container_name: argus-metric-test-node
hostname: test-metric-node-001
restart: unless-stopped
privileged: true
depends_on:
- ftp
- prometheus
environment:
- TZ=Asia/Shanghai
- DEBIAN_FRONTEND=noninteractive
- FTP_DOMAIN=${FTP_DOMAIN:-ftp.metric.argus.com}
- FTP_SERVER=${FTP_SERVER:-172.30.0.40}
- FTP_USER=${FTP_USER:-ftpuser}
- FTP_PASSWORD=${FTP_PASSWORD:-ZGClab1234!}
- FTP_PORT=${FTP_PORT:-21}
volumes:
- ${DATA_ROOT:-/private}/argus/agent:/private/argus/agent
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
command: sleep infinity
networks:
default:
@@ -122,3 +140,4 @@ services:
options:
max-size: "10m"
max-file: "3"

View File

@@ -1,12 +1,17 @@
#!/bin/bash
set -e
FTP_DOMAIN="${FTP_DOMAIN:-ftp.metric.argus.com}"
FTP_SERVER="${FTP_SERVER:-172.30.0.40}"
FTP_USER="${FTP_USER:-ftpuser}"
FTP_PASSWORD="${FTP_PASSWORD:-ZGClab1234!}"
FTP_PORT="${FTP_PORT:-21}"
# 优先使用域名,如果域名不可用则使用 IP
FTP_HOST="${FTP_DOMAIN:-$FTP_SERVER}"
echo "[03] 进入测试节点执行安装..."
echo "[03] 使用 FTP 地址: ${FTP_HOST}:${FTP_PORT}"
docker exec argus-metric-test-node bash -c "
set -e
@@ -18,11 +23,11 @@ fi
cd /tmp
echo '[03] 下载 setup.sh...'
curl -u ${FTP_USER}:${FTP_PASSWORD} ftp://${FTP_SERVER}:${FTP_PORT}/setup.sh -o setup.sh
curl -u ${FTP_USER}:${FTP_PASSWORD} ftp://${FTP_HOST}:${FTP_PORT}/setup.sh -o setup.sh
echo '[03] 执行安装...'
chmod +x setup.sh
bash setup.sh --server ${FTP_SERVER} --user ${FTP_USER} --password '${FTP_PASSWORD}' --port ${FTP_PORT}
bash setup.sh --server ${FTP_HOST} --user ${FTP_USER} --password '${FTP_PASSWORD}' --port ${FTP_PORT}
echo '[03] 安装完成'
"

View File

@@ -43,6 +43,7 @@ BUILD_DIRS=(
"../ftp/build"
"../prometheus/build"
"../grafana/build"
"client-test-node/build"
)
for dir in "${BUILD_DIRS[@]}"; do
@@ -86,7 +87,7 @@ echo "2. 准备 Docker 镜像..."
# 检查镜像是否存在
IMAGE_CACHE_DIR="$TEST_DIR/images-cache"
IMAGES=("argus-metric-ftp:latest" "argus-metric-prometheus:latest" "argus-metric-grafana:latest" "ubuntu:22.04")
IMAGES=("argus-metric-ftp:latest" "argus-metric-prometheus:latest" "argus-metric-grafana:latest" "argus-metric-test-node:latest")
all_images_exist=true
for image in "${IMAGES[@]}"; do
@@ -122,8 +123,8 @@ else
"argus-metric-grafana:latest")
cache_file="${IMAGE_CACHE_DIR}/argus-grafana.tar"
;;
"ubuntu:22.04")
cache_file="${IMAGE_CACHE_DIR}/test-node.tar"
"argus-metric-test-node:latest")
cache_file="${IMAGE_CACHE_DIR}/argus-test-node.tar"
;;
esac
@@ -170,8 +171,8 @@ else
"argus-metric-grafana:latest")
docker save -o "${IMAGE_CACHE_DIR}/argus-grafana.tar" "$image" && echo " 已保存: argus-grafana.tar"
;;
"ubuntu:22.04")
docker save -o "${IMAGE_CACHE_DIR}/test-node.tar" "$image" && echo " 已保存: test-node.tar"
"argus-metric-test-node:latest")
docker save -o "${IMAGE_CACHE_DIR}/argus-test-node.tar" "$image" && echo " 已保存: argus-test-node.tar"
;;
esac
done