MinIO centos 7 离线(内网) 一键部署安装

发布于:2025-06-22 ⋅ 阅读:(14) ⋅ 点赞:(0)

文件结构如上所示:

软件包(免费下载)

【免费】MinIo离线centos7安装包资源-CSDN文库(只有核心安装包)

MinIO整体离线centos7安装包无需外网资源-CSDN文库(整个压缩包-包含全部脚本)

minio_install.sh  (核心安装脚本)

#!/bin/bash
sleep 1
source ./config/install_minio.cfg
LOG_FILE="$1"
source ./functions/log.sh
log_and_print ""
log_and_print "开始安装MinIO..."

# 安装函数
install_minio() {
    log_and_print "安装MinIO RPM包..."
    
    # 检查安装包是否存在
    if [ ! -f "${MINIO_RPM_PATH}" ]; then
        log_and_print "错误: MinIO安装包不存在: ${MINIO_RPM_PATH}"
        exit 1
    fi
    
    # 安装RPM包
    rpm -ivh ${MINIO_RPM_PATH}
    
    # 检查安装是否成功
    if [ $? -ne 0 ]; then
        log_and_print "错误: MinIO安装失败"
        exit 1
    fi
    
    log_and_print "MinIO RPM包安装成功"
}

# 配置函数
configure_minio() {
    log_and_print "配置MinIO服务..."
    
    # 创建必要目录
    mkdir -p ${MINIO_DATA_DIR} ${MINIO_CONFIG_DIR} ${MINIO_LOG_DIR}
    
    # 创建minio用户
    if ! id minio &>/dev/null; then
        useradd -r -s /sbin/nologin minio
    fi
    
    # 设置目录权限
    chown -R minio:minio ${MINIO_DATA_DIR} ${MINIO_CONFIG_DIR} ${MINIO_LOG_DIR}
    chmod 755 ${MINIO_DATA_DIR} ${MINIO_CONFIG_DIR} ${MINIO_LOG_DIR}

    # 创建环境配置文件
    cat > /etc/default/minio <<EOF
MINIO_ROOT_USER=${MINIO_ROOT_USER}
MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD}
MINIO_VOLUMES="${MINIO_DATA_DIR}"
MINIO_OPTS="--console-address :${MINIO_CONSOLE_PORT} --address :${MINIO_PORT}"
MINIO_LOG_DIR="${MINIO_LOG_DIR}"
EOF

    # 创建systemd服务文件
    cat > /etc/systemd/system/minio.service <<EOF
[Unit]
Description=MinIO Object Storage Server
After=network.target
[Service]
User=minio
Group=minio
EnvironmentFile=/etc/default/minio
ExecStart=/usr/local/bin/minio server \$MINIO_OPTS \$MINIO_VOLUMES
ExecStop=/bin/kill -s SIGTERM \$MAINPID
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF

    log_and_print "MinIO服务配置完成"
}

# 启动函数
start_minio() {
    log_and_print "启动MinIO服务..."
    systemctl daemon-reload
    systemctl enable --now minio
    systemctl status minio --no-pager
}

# 主执行流程
install_minio
configure_minio
start_minio
log_and_print "MinIO安装完成..."

functions/log.sh  (日志文件)

#!/bin/bash

# 日志函数库 - 用于统一管理脚本日志输出

# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
NC='\033[0m' # No Color

# 检查全局变量LOG_FILE是否已设置
[ -z "$LOG_FILE" ] && LOG_FILE="/var/log/install_$(date +%Y%m%d).log"

# 创建日志目录(如果不存在)
mkdir -p "$(dirname "$LOG_FILE")"
touch "$LOG_FILE"

# 日志记录函数
log_and_print() {
    local message="$1"
    local timestamp=$(date "+%Y-%m-%d %H:%M:%S")
    
    # 输出到屏幕(带颜色)
    if [[ "$message" =~ "错误" ]]; then
        echo -e "${RED}[$timestamp] $message${NC}"
    elif [[ "$message" =~ "完成" || "$message" =~ "成功" ]]; then
        echo -e "${GREEN}[$timestamp] $message${NC}"
    elif [[ "$message" =~ "警告" ]]; then
        echo -e "${YELLOW}[$timestamp] $message${NC}"
    else
        echo "[$timestamp] $message"
    fi
    
    # 写入日志文件(无颜色)
    echo "[$timestamp] $message" >> "$LOG_FILE"
}

# 命令执行日志记录
run_cmd() {
    local cmd="$@"
    log_and_print "执行命令: $cmd"
    
    # 执行命令并捕获输出
    output=$($cmd 2>&1)
    local status=$?
    
    # 记录输出和状态
    [ -n "$output" ] && log_and_print "命令输出: $output"
    [ $status -ne 0 ] && log_and_print "错误: 命令返回非零状态 $status"
    
    return $status
}

# 错误检查函数
check_error() {
    local status=$1
    local message="$2"
    
    if [ $status -ne 0 ]; then
        log_and_print "错误: $message"
        exit $status
    fi
}

config/install_minio.cfg   (配置文件)

# MinIO RPM包路径
MINIO_RPM_PATH="./minio-20250524170830.0.0-1.x86_64.rpm"

# 数据存储配置
MINIO_DATA_DIR="/data/minio"
MINIO_CONFIG_DIR="/etc/minio"
MINIO_LOG_DIR="/var/log/minio"

# 网络端口
MINIO_PORT=9000
MINIO_CONSOLE_PORT=9001

# 管理员凭据
MINIO_ROOT_USER="admin"
MINIO_ROOT_PASSWORD="!Admin123."

执行命令

chmod +x minio_install.sh
chmod +x config/install minio.cfg
chmod +x functions/log.sh

./minio_install.sh


网站公告

今日签到

点亮在社区的每一天
去签到