温馨提示×

MinIO安装脚本在Ubuntu上的使用方法

小樊
32
2025-12-14 20:16:53
栏目: 智能运维

Ubuntu 上 MinIO 安装脚本使用指南

一 脚本选型与准备

  • 选择安装方式:
    • APT 仓库安装:便于后续升级与系统化管理,适合长期使用。
    • 二进制安装:不依赖仓库,部署灵活,适合离线或受限环境。
  • 准备要点:
    • 架构需匹配(常见为 x86_64/AMD64),脚本中下载链接需对应架构。
    • 建议提前规划数据与配置目录(如 /data/minio/etc/minio),并准备强密码的 MINIO_ROOT_USER / MINIO_ROOT_PASSWORD
    • 开放防火墙端口:9000(S3 API)与 9001(控制台),或按需仅开放内网访问。

二 一键安装脚本 APT 仓库版

  • 功能:安装依赖、导入 GPG、添加仓库、安装 MinIO、创建目录与用户、注册并启动 systemd 服务(默认 9000/9001)。
  • 使用步骤:
    1. 保存为 install-minio-apt.sh
    2. 赋予执行权限:chmod +x install-minio-apt.sh
    3. 以具有 sudo 权限的用户执行:sudo ./install-minio-apt.sh
#!/usr/bin/env bash
set -Eeuo pipefail

# ======= 用户可配置项 =======
MINIO_ROOT_USER="${MINIO_ROOT_USER:-admin}"
MINIO_ROOT_PASSWORD="${MINIO_ROOT_PASSWORD:-YourStrongP@ssw0rd}"
MINIO_DATA_DIR="${MINIO_DATA_DIR:-/data/minio}"
MINIO_CONFIG_DIR="${MINIO_CONFIG_DIR:-/etc/minio}"
MINIO_PORT="${MINIO_PORT:-9000}"
MINIO_CONSOLE_PORT="${MINIO_CONSOLE_PORT:-9001}"
# ============================

if [ "$(id -u)" -ne 0 ]; then
  echo "请使用 root 或 sudo 执行此脚本。"
  exit 1
fi

echo "1) 安装依赖..."
apt-get update
apt-get install -y --no-install-recommends \
  wget curl gnupg2 lsb-release ca-certificates

echo "2) 导入 MinIO GPG 密钥并添加 APT 仓库..."
wget -qO - https://dl.min.io/server/minio/release/linux-amd64/minio-release.gpg.key \
  | gpg --dearmor | tee /usr/share/keyrings/minio-archive-keyring.gpg >/dev/null

echo "deb [signed-by=/usr/share/keyrings/minio-archive-keyring.gpg] https://dl.min.io/server/minio/release/ubuntu/ $(lsb_release -sc) main" \
  | tee /etc/apt/sources.list.d/minio.list >/dev/null

apt-get update
apt-get install -y minio

echo "3) 创建系统用户与目录..."
groupadd -r minio 2>/dev/null || true
id -u minio &>/dev/null || useradd -r -g minio -s /usr/sbin/nologin minio

mkdir -p "$MINIO_DATA_DIR" "$MINIO_CONFIG_DIR"
chown -R minio:minio "$MINIO_DATA_DIR" "$MINIO_CONFIG_DIR"
chmod 750 "$MINIO_DATA_DIR" "$MINIO_CONFIG_DIR"

echo "4) 写入环境变量文件 /etc/default/minio ..."
cat >/etc/default/minio <<EOF
MINIO_ROOT_USER=$MINIO_ROOT_USER
MINIO_ROOT_PASSWORD=$MINIO_ROOT_PASSWORD
MINIO_VOLUMES="$MINIO_DATA_DIR"
MINIO_OPTS="--address :$MINIO_PORT --console-address :$MINIO_CONSOLE_PORT"
EOF

echo "5) 注册并启动 systemd 服务..."
systemctl daemon-reload
systemctl enable --now minio

echo "✅ 安装完成:"
echo "  数据目录:$MINIO_DATA_DIR"
echo "  配置目录:$MINIO_CONFIG_DIR"
echo "  控制台地址:http://$(hostname -I | awk '{print $1}'):$MINIO_CONSOLE_PORT"
echo "  默认账号:$MINIO_ROOT_USER"
echo "  请使用强密码并尽快修改默认凭据。"
  • 说明:
    • 采用 GPG 密钥环方式导入,更契合较新 Ubuntu 的 APT 安全策略。
    • 服务环境变量采用 /etc/default/minio 方式管理,便于维护与审计。

三 一键安装脚本 二进制版

  • 功能:下载 MinIO 二进制、创建用户与目录、注册 systemd 服务(默认 9000/9001)。
  • 使用步骤:
    1. 保存为 install-minio-binary.sh
    2. 赋予执行权限:chmod +x install-minio-binary.sh
    3. 以具有 sudo 权限的用户执行:sudo ./install-minio-binary.sh
#!/usr/bin/env bash
set -Eeuo pipefail

# ======= 用户可配置项 =======
MINIO_ROOT_USER="${MINIO_ROOT_USER:-admin}"
MINIO_ROOT_PASSWORD="${MINIO_ROOT_PASSWORD:-YourStrongP@ssw0rd}"
MINIO_BIN_DIR="${MINIO_BIN_DIR:-/usr/local/bin}"
MINIO_DATA_DIR="${MINIO_DATA_DIR:-/data/minio}"
MINIO_CONFIG_DIR="${MINIO_CONFIG_DIR:-/etc/minio}"
MINIO_PORT="${MINIO_PORT:-9000}"
MINIO_CONSOLE_PORT="${MINIO_CONSOLE_PORT:-9001}"
MINIO_VERSION="${MINIO_VERSION:-RELEASE.2025-04-22T22-12-19Z}"  # 按需调整版本
# ============================

if [ "$(id -u)" -ne 0 ]; then
  echo "请使用 root 或 sudo 执行此脚本。"
  exit 1
fi

echo "1) 安装依赖..."
apt-get update
apt-get install -y --no-install-recommends wget curl ca-certificates

echo "2) 创建系统用户与目录..."
groupadd -r minio 2>/dev/null || true
id -u minio &>/dev/null || useradd -r -g minio -s /usr/sbin/nologin minio

mkdir -p "$MINIO_DATA_DIR" "$MINIO_CONFIG_DIR"
chown -R minio:minio "$MINIO_DATA_DIR" "$MINIO_CONFIG_DIR"
chmod 750 "$MINIO_DATA_DIR" "$MINIO_CONFIG_DIR"

echo "3) 下载并安装 MinIO 二进制..."
MINIO_URL="https://dl.min.io/server/minio/release/linux-amd64/minio"
[ -n "${MINIO_VERSION:-}" ] && MINIO_URL="https://dl.min.io/server/minio/release/linux-amd64/archive/${MINIO_VERSION}"

wget -q --show-progress -O "$MINIO_BIN_DIR/minio" "$MINIO_URL"
chmod +x "$MINIO_BIN_DIR/minio"

echo "4) 注册 systemd 服务..."
cat >/etc/systemd/system/minio.service <<EOF
[Unit]
Description=MinIO Object Storage Server
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target

[Service]
User=minio
Group=minio
Environment="MINIO_ROOT_USER=$MINIO_ROOT_USER"
Environment="MINIO_ROOT_PASSWORD=$MINIO_ROOT_PASSWORD"
Environment="MINIO_ADDRESS=:$MINIO_PORT"
Environment="MINIO_CONSOLE_ADDRESS=:$MINIO_CONSOLE_PORT"
ExecStart=$MINIO_BIN_DIR/minio server "$MINIO_DATA_DIR" --config-dir "$MINIO_CONFIG_DIR"
Restart=always
RestartSec=5
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target
EOF

echo "5) 启动服务..."
systemctl daemon-reload
systemctl enable --now minio

echo "✅ 安装完成:"
echo "  二进制:$MINIO_BIN_DIR/minio"
echo "  数据目录:$MINIO_DATA_DIR"
echo  控制台地址:http://$(hostname -I | awk '{print $1}'):$MINIO_CONSOLE_PORT"
echo "  默认账号:$MINIO_ROOT_USER"
  • 说明:
    • 二进制方式不依赖 APT,适合离线环境;如需固定版本,设置 MINIO_VERSION 即可。

四 运行验证与常见问题

  • 验证与登录:
    • 查看服务状态:sudo systemctl status minio
    • 放行防火墙:sudo ufw allow 9000,9001/tcp 或按需仅内网放行
    • 访问控制台:http://服务器IP:9001,使用脚本中设置的 MINIO_ROOT_USER / MINIO_ROOT_PASSWORD 登录
    • 健康检查:curl -I http://服务器IP:9000
  • 常见问题与处理:
    • 端口被占用:修改脚本中的 MINIO_PORT / MINIO_CONSOLE_PORT,并确保防火墙与云安全组已放行新端口
    • 权限错误:确认 /data/minio /etc/minio 属主为 minio:minio,目录权限为 750
    • 忘记或弱口令:立即修改为强密码,并遵循最小权限原则配置访问策略
    • APT 签名报错:确保使用 GPG 密钥环方式导入,或切换为二进制安装方式

0