feat: 用户侧安装组件前,提前下载全局配置文件并设置环境变量;集成 fluent-bit 安装包;

refs #11
This commit is contained in:
sundapeng.sdp 2025-09-26 17:44:20 +08:00
parent 56312985e6
commit 8d05042564
9 changed files with 64 additions and 24 deletions

View File

@ -0,0 +1,3 @@
# Elasticsearch
ES_HOST=es.log.argus.com
ES_PORT=9200

View File

@ -17,7 +17,7 @@ log_success() {
# 获取当前目录
CURRENT_DIR=$(pwd)
PACKAGE_NAME="node-exporter-installer-$(date +%Y%m%d-%H%M%S)"
PACKAGE_NAME="node-exporter-$(date +%Y%m%d-%H%M%S)"
PACKAGE_FILE="${PACKAGE_NAME}.tar.gz"
log_info "开始打包 Node Exporter 安装包..."

View File

@ -2,23 +2,6 @@
set -e
# 加载配置文件
load_config() {
local script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
local config_file="$script_dir/config.env"
if [[ -f "$config_file" ]]; then
log_info "加载配置文件: $config_file"
# 导出配置文件中的环境变量
set -a # 自动导出所有变量
source "$config_file"
set +a # 关闭自动导出
log_success "配置文件加载完成"
else
log_warning "配置文件不存在: $config_file,使用默认配置"
fi
}
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
@ -46,6 +29,49 @@ INSTALL_DIR="${1:-$(pwd)}" # 使用第一个参数作为安装目录,如果
TEMP_DIR="/tmp/metrics-install-$$"
VERSION_FILE="version.json"
# 加载配置文件
load_config() {
local script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
local config_file="$script_dir/config.env"
if [[ -f "$config_file" ]]; then
log_info "加载配置文件: $config_file"
# 导出配置文件中的环境变量
set -a # 自动导出所有变量
source "$config_file"
set +a # 关闭自动导出
log_success "配置文件加载完成"
else
log_warning "配置文件不存在: $config_file,使用默认配置"
fi
}
# 复制配置文件到安装目录
copy_config_files() {
log_info "复制配置文件到安装目录..."
local script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
local source_config="$script_dir/config.env"
local target_config="$INSTALL_DIR/config.env"
if [[ -f "$source_config" ]]; then
# 检查源文件和目标文件是否是同一个文件
if [[ "$source_config" == "$target_config" ]]; then
log_info "配置文件已在目标位置,跳过复制"
log_success "配置文件已存在: $target_config"
else
if cp "$source_config" "$target_config"; then
log_success "配置文件复制完成: $target_config"
else
log_error "配置文件复制失败"
return 1
fi
fi
else
log_warning "源配置文件不存在: $source_config"
fi
}
check_root() {
if [[ $EUID -ne 0 ]]; then
log_error "此脚本需要 root 权限运行"
@ -694,6 +720,7 @@ main() {
verify_checksums
install_system_deps
install_components
copy_config_files
create_install_record
setup_health_check_cron
show_install_info

View File

@ -104,6 +104,15 @@ if [[ -f "scripts/uninstall_artifact.sh" ]]; then
cp "scripts/uninstall_artifact.sh" "$TEMP_PACKAGE_DIR/uninstall.sh"
fi
# 复制配置文件
if [[ -f "$ARTIFACT_DIR/config.env" ]]; then
log_info "复制配置文件..."
cp "$ARTIFACT_DIR/config.env" "$TEMP_PACKAGE_DIR/"
log_success "配置文件复制完成"
else
log_warning "未找到 config.env 文件"
fi
# 复制 deps 目录
if [[ -d "$ARTIFACT_DIR/deps" ]]; then
log_info "复制系统依赖包..."

View File

@ -2,12 +2,6 @@
set -e
# 加载配置文件(仅在解压后的目录中可用)
load_config() {
# setup.sh 脚本不需要配置文件FTP参数通过命令行参数或环境变量提供
log_info "setup.sh 脚本使用命令行参数或环境变量获取FTP配置"
}
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
@ -635,6 +629,13 @@ install_argus_metric() {
# 更新软链接指向新版本
log_info "更新当前版本链接..."
# 如果 current 已经存在且是目录,先删除它
if [[ -d "$CURRENT_LINK" ]] && [[ ! -L "$CURRENT_LINK" ]]; then
log_warning "发现 current 是目录而不是符号链接,正在删除..."
rm -rf "$CURRENT_LINK"
fi
if ln -sfn "$version_dir" "$CURRENT_LINK"; then
log_success "版本链接更新完成: $CURRENT_LINK -> $version_dir"
else