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