linux

Linux MinIO安装脚本使用方法

小樊
36
2025-12-04 17:58:50
栏目: 智能运维

Linux MinIO安装脚本使用方法

一 准备与下载

二 一键安装脚本示例

#!/usr/bin/env bash
set -Eeuo pipefail

# 0) 可配置参数
MINIO_USER="${MINIO_USER:-admin}"
MINIO_PASS="${MINIO_PASS:-YourStrongP@ssw0rd}"
DATA_DIR="${DATA_DIR:-/data/minio}"
BIN_DIR="/usr/local/bin"
SERVICE_USER="${SERVICE_USER:-minio}"

# 1) 环境检查与依赖
if ! command -v wget >/dev/null 2>&1 && ! command -v curl >/dev/null 2>&1; then
  echo "请先安装 wget 或 curl"
  exit 1
fi

# 2) 创建用户与数据目录
if ! id "$SERVICE_USER" &>/dev/null; then
  useradd --system --home-dir "$DATA_DIR" --shell /usr/sbin/nologin "$SERVICE_USER"
fi
mkdir -p "$DATA_DIR"
chown -R "$SERVICE_USER:$SERVICE_USER" "$DATA_DIR"

# 3) 下载并安装 MinIO 二进制
MINIO_URL="https://dl.min.io/server/minio/release/linux-amd64/minio"
if command -v wget >/dev/null 2>&1; then
  wget -q -O "$BIN_DIR/minio" "$MINIO_URL"
else
  curl -s -o "$BIN_DIR/minio" "$MINIO_URL"
fi
chmod +x "$BIN_DIR/minio"

# 4) 创建 systemd 服务
cat >/etc/systemd/system/minio.service <<'EOF'
[Unit]
Description=MinIO Object Storage
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target

[Service]
Type=notify
User=%i
Group=%i
Environment="MINIO_ROOT_USER=%i"
Environment="MINIO_ROOT_PASSWORD_FILE=/etc/minio/minio-root-password"
ExecStart=%i server --address ":9000" --console-address ":9001" %S_DATA_DIR%
Restart=always
LimitNOFILE=65536

# 安全加固(可按需调整)
ProtectKernelTunables=yes
ProtectKernelModules=yes
ProtectControlGroups=yes
RestrictAddressFamilies=AF_INET AF_INET6
RestrictNamespaces=yes
RestrictRealtime=yes
SystemCallFilter=@system-service
NoNewPrivileges=yes

[Install]
WantedBy=multi-user.target
EOF

# 将密码写入受保护文件
mkdir -p /etc/minio
echo "$MINIO_PASS" > /etc/minio/minio-root-password
chown "$SERVICE_USER:$SERVICE_USER" /etc/minio/minio-root-password
chmod 600 /etc/minio/minio-root-password

# 5) 启用并启动服务
systemctl daemon-reload
systemctl enable --now minio.service

echo "MinIO 已安装并启动:"
echo "  服务状态: systemctl status minio"
echo "  API: http://$(hostname -I | awk '{print $1}'):9000"
echo "  控制台: http://$(hostname -I | awk '{print $1}'):9001"
echo "  数据目录: $DATA_DIR"
echo "  运行用户: $SERVICE_USER"
chmod +x install_minio.sh
sudo ./install_minio.sh

三 常用操作与验证

sudo systemctl start   minio    # 启动
sudo systemctl stop    minio    # 停止
sudo systemctl restart minio    # 重启
sudo systemctl status  minio    # 查看状态
sudo systemctl enable  minio    # 开机自启
minio --version
curl -I http://127.0.0.1:9000/minio/health/live

四 分布式部署与注意事项

0
看了该问题的人还看了