[#49] swarm test重启测试通过

This commit is contained in:
2025-11-19 17:26:26 +08:00
parent 1d38304936
commit d4e0dc1511
19 changed files with 697 additions and 116 deletions

View File

@@ -88,23 +88,15 @@ for i in $(seq 1 "$RETRIES"); do
done
[[ $ok -ge 6 ]] || err "部分服务未就绪(可稍后重试 selfcheck)"
# Resolve overlay IPs
bind_c=argus-bind-sys; ftp_c=argus-ftp
BINDIP=$(docker inspect -f '{{ (index .NetworkSettings.Networks "'$NET_NAME'").IPAddress }}' "$bind_c" 2>/dev/null || true)
FTPIP=$(docker inspect -f '{{ (index .NetworkSettings.Networks "'$NET_NAME'").IPAddress }}' "$ftp_c" 2>/dev/null || true)
info "解析 overlay IP: BINDIP=${BINDIP:-<empty>} FTPIP=${FTPIP:-<empty>}"
# Swarm join tokens
TOKEN_WORKER=$(docker swarm join-token -q worker 2>/dev/null || echo "")
TOKEN_MANAGER=$(docker swarm join-token -q manager 2>/dev/null || echo "")
# cluster-info.env
# cluster-info.env(compose 场景下不再依赖 BINDIP/FTPIP)
CI="$PKG_ROOT/cluster-info.env"
info "写入 cluster-info.env (manager/token/IP)"
info "写入 cluster-info.env (manager/token)"
{
echo "SWARM_MANAGER_ADDR=${SWARM_MANAGER_ADDR:-}"
echo "BINDIP=${BINDIP:-}"
echo "FTPIP=${FTPIP:-}"
echo "SWARM_JOIN_TOKEN_WORKER=${TOKEN_WORKER:-}"
echo "SWARM_JOIN_TOKEN_MANAGER=${TOKEN_MANAGER:-}"
} > "$CI"
@@ -131,10 +123,6 @@ RPT="$PKG_ROOT/安装报告_${ts}.md"
echo "- JOIN_TOKEN_WORKER=${TOKEN_WORKER:-}"
echo "- JOIN_TOKEN_MANAGER=${TOKEN_MANAGER:-}"
echo
echo "## Overlay IPs"
echo "- BINDIP=${BINDIP:-}"
echo "- FTPIP=${FTPIP:-}"
echo
echo "## 健康检查(简要)"
echo "- master/readyz=$(code http://127.0.0.1:${MASTER_PORT:-32300}/readyz)"
echo "- es/_cluster/health=$(code http://127.0.0.1:${ES_HTTP_PORT:-9200}/_cluster/health)"
@@ -146,30 +134,4 @@ RPT="$PKG_ROOT/安装报告_${ts}.md"
info "已生成报告: $RPT"
info "安装完成。可将 cluster-info.env 分发给 Client-GPU 安装方。"
# 写入域名→overlay IP 并热更新 Bind/Nginx
ETC_DIR="$PKG_ROOT/private/argus/etc"; mkdir -p "$ETC_DIR"
declare -A MAP
MAP[web-frontend]=web.argus.com
MAP[argus-grafana]=grafana.metric.argus.com
MAP[argus-prometheus]=prom.metric.argus.com
MAP[argus-kibana-sys]=kibana.log.argus.com
MAP[argus-alertmanager]=alertmanager.alert.argus.com
MAP[argus-master-sys]=master.argus.com
changed=0
for cname in "${!MAP[@]}"; do
domain="${MAP[$cname]}"; fpath="$ETC_DIR/$domain"
ip=$(docker inspect -f '{{ (index .NetworkSettings.Networks "'$NET_NAME'").IPAddress }}' "$cname" 2>/dev/null || true)
[[ -z "$ip" ]] && { echo "[DNS-FIX][WARN] $domain: container $cname no overlay IP yet"; continue; }
cur=$(cat "$fpath" 2>/dev/null || echo "")
if [[ "$cur" != "$ip" ]]; then
echo "$ip" > "$fpath"; echo "[DNS-FIX][SET] $domain = $ip (was: ${cur:-<empty>})"; changed=1
else
echo "[DNS-FIX][OK] $domain already $ip"
fi
done
if [[ $changed -eq 1 ]]; then
docker exec argus-bind-sys /usr/local/bin/reload-bind9.sh >/dev/null 2>&1 || docker exec argus-bind-sys rndc reload >/dev/null 2>&1 || true
sleep 1
fi
docker exec argus-web-proxy nginx -t >/dev/null 2>&1 && docker exec argus-web-proxy nginx -s reload >/dev/null 2>&1 || true