linux

Linux MinIO安装脚本有哪些

小樊
39
2025-12-12 15:30:17
栏目: 智能运维

Linux 上常见的 MinIO 安装脚本类型

Shell 一键安装脚本示例

#!/usr/bin/env bash
set -e

# 0) 可改为需要的版本
MINIO_VERSION="RELEASE.2023-09-19T21-14-04Z"
MINIO_URL="https://dl.min.io/server/minio/release/linux-amd64/archive/minio.${MINIO_VERSION}"

# 1) root 检查
if [ "$EUID" -ne 0 ]; then
  echo "请以 root 用户运行此脚本。"
  exit 1
fi

# 2) 安装依赖
if command -v apt-get >/dev/null 2>&1; then
  apt-get update && apt-get install -y wget
elif command -v yum >/dev/null 2>&1; then
  yum install -y wget
else
  echo "未检测到 apt 或 yum,请先安装 wget。"
  exit 1
fi

# 3) 安装 MinIO 二进制
mkdir -p /usr/local/bin
wget -q -O /usr/local/bin/minio "$MINIO_URL"
chmod +x /usr/local/bin/minio

# 4) 数据目录
mkdir -p /usr/local/share/minio

# 5) systemd 服务(示例密钥,生产请替换)
cat >/etc/systemd/system/minio.service <<'EOF'
[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target

[Service]
User=root
Group=root
Environment="MINIO_ACCESS_KEY=minioadmin"
Environment="MINIO_SECRET_KEY=minioadmin"
ExecStart=/usr/local/bin/minio server /usr/local/share/minio
Restart=always

[Install]
WantedBy=multi-user.target
EOF

# 6) 启动
systemctl daemon-reload
systemctl enable --now minio
systemctl status minio --no-pager

发行版包管理器脚本示例

curl -fsSL https://min.io/download | bash
sudo mv minio.list /etc/apt/sources.list.d/minio.list
sudo apt update
sudo apt install -y minio
sudo systemctl enable --now minio
curl -fsSL https://min.io/download | bash
sudo mv minio.repo /etc/yum.repos.d/minio.repo
sudo yum install -y minio    # 或 dnf install -y minio
sudo systemctl enable --now minio

Python 辅助安装脚本示例

#!/usr/bin/env python3
import os, subprocess, sys

def run(*cmd):
    subprocess.check_call(cmd, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)

if os.geteuid() != 0:
    sys.exit("请以 root 用户运行此脚本。")

# 1) 安装 wget
if subprocess.call(["command", "-v", "apt-get"], stdout=subprocess.DEVNULL) == 0:
    run("apt-get", "update")
    run("apt-get", "install", "-y", "wget")
elif subprocess.call(["command", "-v", "yum"], stdout=subprocess.DEVNULL) == 0:
    run("yum", "install", "-y", "wget")

# 2) 安装 MinIO 二进制
url = "https://dl.min.io/server/minio/release/linux-amd64/archive/minio.RELEASE.2023-09-19T21-14-04Z"
run("wget", "-q", "-O", "/usr/local/bin/minio", url)
os.chmod("/usr/local/bin/minio", 0o755)

# 3) 数据目录
os.makedirs("/usr/local/share/minio", exist_ok=True)

# 4) systemd 服务
service = """[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
[Service]
User=root
Group=root
Environment="MINIO_ACCESS_KEY=minioadmin"
Environment="MINIO_SECRET_KEY=minioadmin"
ExecStart=/usr/local/bin/minio server /usr/local/share/minio
Restart=always
[Install]
WantedBy=multi-user.target
"""
with open("/etc/systemd/system/minio.service", "w") as f:
    f.write(service)

# 5) 启动
run("systemctl", "daemon-reload")
run("systemctl", "enable", "--now", "minio")
print("MinIO 安装并启动完成。")

容器化运行脚本示例

docker run -d \
  -p 9000:9000 -p 9001:9001 \
  -e MINIO_ROOT_USER=myuser \
  -e MINIO_ROOT_PASSWORD=mypassword \
  -v /data/minio:/data \
  minio/minio server /data --console-address ":9001"

集群部署脚本要点

MINIO_ROOT_USER=myuser
MINIO_ROOT_PASSWORD=mypassword
MINIO_VOLUMES="http://host1/data/minio http://host2/data/minio http://host3/data/minio http://host4/data/minio"
MINIO_OPTS="--address :9000 --console-address :9001"
systemctl daemon-reload
systemctl enable --now minio
journalctl -u minio.service -xe

0
看了该问题的人还看了