Co-authored-by: sundapeng.sdp <sundapeng@hashdata.cn> Reviewed-on: #18 Reviewed-by: xuxt <xuxt@zgclab.edu.cn> Reviewed-by: yuyr <yuyr@zgclab.edu.cn> Reviewed-by: huhy <husteryezi@163.com>
91 lines
2.6 KiB
Bash
Executable File
91 lines
2.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# 初始化目录脚本
|
|
# 用于创建所有必要的数据目录并设置正确的权限
|
|
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
cd "$SCRIPT_DIR"
|
|
|
|
# 加载 .env 文件(如果存在)
|
|
if [ -f .env ]; then
|
|
echo "加载 .env 配置文件..."
|
|
source .env
|
|
fi
|
|
|
|
# 默认配置
|
|
FTP_UID=${FTP_UID:-2133}
|
|
FTP_GID=${FTP_GID:-2015}
|
|
PROMETHEUS_UID=${PROMETHEUS_UID:-2133}
|
|
PROMETHEUS_GID=${PROMETHEUS_GID:-2015}
|
|
GRAFANA_UID=${GRAFANA_UID:-2133}
|
|
GRAFANA_GID=${GRAFANA_GID:-2015}
|
|
DATA_ROOT=${DATA_ROOT:-./data}
|
|
|
|
echo "开始初始化目录结构..."
|
|
echo "数据目录: ${DATA_ROOT}"
|
|
echo ""
|
|
|
|
# 创建 FTP 目录
|
|
echo "创建 FTP 目录..."
|
|
sudo mkdir -p ${DATA_ROOT}/ftp/share
|
|
sudo chown -R ${FTP_UID}:${FTP_GID} ${DATA_ROOT}/ftp
|
|
sudo chmod -R 755 ${DATA_ROOT}/ftp
|
|
|
|
# 创建 Prometheus 目录
|
|
echo "创建 Prometheus 目录..."
|
|
sudo mkdir -p ${DATA_ROOT}/prometheus/{data,rules,targets}
|
|
|
|
# 创建默认的 targets 文件(先创建文件再改权限)
|
|
if [ ! -f "${DATA_ROOT}/prometheus/targets/node_exporter.json" ]; then
|
|
echo "创建默认 node_exporter targets..."
|
|
echo '[
|
|
{
|
|
"targets": [],
|
|
"labels": {
|
|
"job": "node"
|
|
}
|
|
}
|
|
]' | sudo tee ${DATA_ROOT}/prometheus/targets/node_exporter.json > /dev/null
|
|
fi
|
|
|
|
if [ ! -f "${DATA_ROOT}/prometheus/targets/dcgm_exporter.json" ]; then
|
|
echo "创建默认 dcgm_exporter targets..."
|
|
echo '[
|
|
{
|
|
"targets": [],
|
|
"labels": {
|
|
"job": "dcgm"
|
|
}
|
|
}
|
|
]' | sudo tee ${DATA_ROOT}/prometheus/targets/dcgm_exporter.json > /dev/null
|
|
fi
|
|
|
|
# 统一设置 Prometheus 目录权限
|
|
sudo chown -R ${PROMETHEUS_UID}:${PROMETHEUS_GID} ${DATA_ROOT}/prometheus
|
|
sudo chmod -R 755 ${DATA_ROOT}/prometheus
|
|
|
|
# 创建 Grafana 目录
|
|
echo "创建 Grafana 目录..."
|
|
sudo mkdir -p ${DATA_ROOT}/grafana/{data,logs,plugins,provisioning/datasources,provisioning/dashboards,data/sessions,data/dashboards,config}
|
|
sudo chown -R ${GRAFANA_UID}:${GRAFANA_GID} ${DATA_ROOT}/grafana
|
|
sudo chmod -R 755 ${DATA_ROOT}/grafana
|
|
|
|
# 创建公共配置目录
|
|
sudo mkdir -p ${DATA_ROOT}/etc
|
|
sudo chown -R ${FTP_UID}:${FTP_GID} ${DATA_ROOT}/etc
|
|
sudo chmod -R 755 ${DATA_ROOT}/etc
|
|
|
|
echo "目录初始化完成!"
|
|
echo ""
|
|
echo "目录结构:"
|
|
echo " ${DATA_ROOT}/"
|
|
echo " ├── ftp/ (UID:${FTP_UID}, GID:${FTP_GID})"
|
|
echo " ├── prometheus/ (UID:${PROMETHEUS_UID}, GID:${PROMETHEUS_GID})"
|
|
echo " ├── grafana/ (UID:${GRAFANA_UID}, GID:${GRAFANA_GID})"
|
|
echo " └── etc/ (UID:${FTP_UID}, GID:${FTP_GID})"
|
|
echo ""
|
|
echo "您现在可以运行 'docker-compose up -d' 来启动所有服务"
|
|
|