From 6771398b5bef2f2388b9bb1aeb2be764939adf99 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 17 Sep 2025 09:54:46 +0000 Subject: [PATCH] =?UTF-8?q?[#1]=20=E6=9E=84=E5=BB=BA=E6=97=B6=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=BA=94=E7=94=A8=E8=B4=A6=E5=8F=B7=E7=9A=84uid?= =?UTF-8?q?=E5=92=8Cgid=EF=BC=8C=20=E6=9D=A5=E5=92=8C=E7=AE=97=E5=8A=9B?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E5=AF=B9=E9=BD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../build/start-es-supervised.sh | 4 --- .../kibana/build/start-kibana-supervised.sh | 2 -- src/log/tests/docker-compose.yml | 4 +-- src/log/tests/scripts/01_bootstrap.sh | 10 ++++-- src/log/tests/scripts/update-dns.sh | 31 +++++++++++++++++++ 5 files changed, 41 insertions(+), 10 deletions(-) create mode 100755 src/log/tests/scripts/update-dns.sh diff --git a/src/log/elasticsearch/build/start-es-supervised.sh b/src/log/elasticsearch/build/start-es-supervised.sh index f2cbd75..c54c920 100644 --- a/src/log/elasticsearch/build/start-es-supervised.sh +++ b/src/log/elasticsearch/build/start-es-supervised.sh @@ -5,7 +5,6 @@ echo "[INFO] Starting Elasticsearch under supervisor..." # 创建数据目录并设置权限(如果不存在) mkdir -p /private/argus/log/elasticsearch -chown -R elasticsearch:elasticsearch /private/argus/log/elasticsearch # 创建软链接到Elasticsearch预期的数据目录 if [ -L /usr/share/elasticsearch/data ]; then @@ -22,9 +21,6 @@ IP=`ifconfig | grep -A 1 eth0 | grep inet | awk '{print $2}'` echo current IP: ${IP} echo ${IP} > /private/argus/etc/${DOMAIN} -# 更新dns,执行 -/private/argus/etc/update-dns.sh - echo "[INFO] Data directory linked: /usr/share/elasticsearch/data -> /private/argus/log/elasticsearch" # 设置环境变量(ES配置通过docker-compose传递) diff --git a/src/log/kibana/build/start-kibana-supervised.sh b/src/log/kibana/build/start-kibana-supervised.sh index 6b2e5dd..53dd6eb 100644 --- a/src/log/kibana/build/start-kibana-supervised.sh +++ b/src/log/kibana/build/start-kibana-supervised.sh @@ -3,9 +3,7 @@ set -euo pipefail echo "[INFO] Starting Kibana under supervisor..." -# 创建数据目录并设置权限(如果不存在) mkdir -p /private/argus/log/kibana -chown -R kibana:kibana /private/argus/log/kibana # 创建软链接到Kibana预期的数据目录 if [ -L /usr/share/kibana/data ]; then diff --git a/src/log/tests/docker-compose.yml b/src/log/tests/docker-compose.yml index b44a6b3..ab3b164 100644 --- a/src/log/tests/docker-compose.yml +++ b/src/log/tests/docker-compose.yml @@ -10,7 +10,7 @@ services: - xpack.security.enabled=false - ES_JAVA_OPTS=-Xms512m -Xmx512m volumes: - - ./private/argus/log/elasticsearch:/private/argus/log/elasticsearch + - ./private/argus/:/private/argus/ ports: ["9200:9200"] healthcheck: test: ["CMD-SHELL", "curl -fs http://localhost:9200 >/dev/null || exit 1"] @@ -26,7 +26,7 @@ services: environment: - ELASTICSEARCH_HOSTS=http://es:9200 volumes: - - ./private/argus/log/kibana:/private/argus/log/kibana + - ./private/argus/:/private/argus/ ports: ["5601:5601"] depends_on: es: diff --git a/src/log/tests/scripts/01_bootstrap.sh b/src/log/tests/scripts/01_bootstrap.sh index 6cc4caa..d94ec5c 100755 --- a/src/log/tests/scripts/01_bootstrap.sh +++ b/src/log/tests/scripts/01_bootstrap.sh @@ -6,11 +6,17 @@ root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../" && pwd)" echo "[INFO] Creating private directory structure for supervisor-based containers..." mkdir -p "$root/private/argus/log/elasticsearch" mkdir -p "$root/private/argus/log/kibana" +mkdir -p "$root/private/argus/etc/" + +# 复制更新dns脚本 +cp $root/scripts/update-dns.sh $root/private/argus/etc/ +echo "8.8.8.8" > $root/private/argus/etc/dns.conf # 设置数据目录权限(ES 和 Kibana 容器都使用 UID 1000) echo "[INFO] Setting permissions for data directories..." -sudo chown -R 1000:1000 "$root/private/argus/log/elasticsearch" 2>/dev/null || true -sudo chown -R 1000:1000 "$root/private/argus/log/kibana" 2>/dev/null || true +sudo chown -R 2133:2015 "$root/private/argus/log/elasticsearch" 2>/dev/null || true +sudo chown -R 2133:2015 "$root/private/argus/log/kibana" 2>/dev/null || true +sudo chown -R 2133:2015 "$root/private/argus/etc" 2>/dev/null || true echo "[INFO] Supervisor-based containers will manage their own scripts and configurations" diff --git a/src/log/tests/scripts/update-dns.sh b/src/log/tests/scripts/update-dns.sh new file mode 100755 index 0000000..17da942 --- /dev/null +++ b/src/log/tests/scripts/update-dns.sh @@ -0,0 +1,31 @@ +#!/bin/sh +# update-dns.sh +# 从 /private/argus/etc/dns.conf 读取 IP,写入 /etc/resolv.conf + +DNS_CONF="/private/argus/etc/dns.conf" +RESOLV_CONF="/etc/resolv.conf" + +# 检查配置文件是否存在 +if [ ! -f "$DNS_CONF" ]; then + echo "配置文件不存在: $DNS_CONF" >&2 + exit 1 +fi + +# 生成 resolv.conf 内容 +{ + while IFS= read -r ip; do + # 跳过空行和注释 + case "$ip" in + \#*) continue ;; + "") continue ;; + esac + echo "nameserver $ip" + done < "$DNS_CONF" +} > "$RESOLV_CONF".tmp + +# 替换写入 /etc/resolv.conf +cat "$RESOLV_CONF".tmp > "$RESOLV_CONF" +rm -f "$RESOLV_CONF".tmp + +echo "已更新 $RESOLV_CONF" +