MinIO 是一个高性能的对象存储服务器,兼容 Amazon S3 接口,用 Go 语言编写,适用于大规模数据存储和处理。以下是 Linux MinIO 安装脚本的分享:
#!/bin/bash
# 检查是否以 root 用户运行
if [ "$EUID" -ne 0 ]; then
echo "请以 root 用户运行此脚本。"
exit 1
fi
# 安装必要的依赖
echo "安装依赖..."
apt-get update && apt-get install -y wget || yum install -y wget
# 定义 MinIO 版本和安装路径
MINIO_VERSION="RELEASE.2023-09-19T21-14-04Z"
MINIO_URL="https://dl.min.io/server/minio/release/linux-amd64/archive/minio.${MINIO_VERSION}"
# 创建 MinIO 安装目录
mkdir -p /usr/local/bin
# 下载并安装 MinIO
echo "下载并安装 MinIO..."
wget -q -O /usr/local/bin/minio $MINIO_URL
chmod +x /usr/local/bin/minio
# 创建 MinIO 数据目录
mkdir -p /usr/local/share/minio
# 设置环境变量
ACCESS_KEY="minioadmin"
SECRET_KEY="minioadmin"
# 创建 MinIO systemd service 文件
cat <<EOL > /etc/systemd/system/minio.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=${ACCESS_KEY}"
Environment="MINIO_SECRET_KEY=${SECRET_KEY}"
ExecStart=/usr/local/bin/minio server /usr/local/share/minio
Restart=always
EOL
systemctl daemon-reload
systemctl start minio
systemctl enable minio
由于 Python 脚本通常用于更复杂的自动化任务,这里提供一个简单的 Python 脚本示例,用于安装 MinIO:
import os
import subprocess
def install_minio():
# 检查是否以 root 用户运行
if os.geteuid() != 0:
print("请以 root 用户运行此脚本。")
return
# 安装必要的依赖
print("安装依赖...")
subprocess.run(['apt-get', 'update'] + (['yum', 'install', '-y', 'wget'] if os.pathsep(os.environ.get('yum', 'yum')) else []))
# 定义 MinIO 版本和安装路径
minio_version = "RELEASE.2023-09-19T21-14-04Z"
minio_url = f"https://dl.min.io/server/minio/release/linux-amd64/archive/minio.{minio_version}"
# 创建 MinIO 安装目录
subprocess.run(['mkdir', '-p', '/usr/local/bin'])
# 下载并安装 MinIO
print("下载并安装 MinIO...")
subprocess.run(['wget', '-q', '-O', '/usr/local/bin/minio', minio_url])
subprocess.run(['chmod', '+x', '/usr/local/bin/minio'])
# 创建 MinIO 数据目录
subprocess.run(['mkdir', '-p', '/usr/local/share/minio'])
# 设置环境变量
access_key = "minioadmin"
secret_key = "minioadmin"
# 创建 MinIO systemd service 文件
with open('/etc/systemd/system/minio.service', 'w') as f:
f.write("""[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=${ACCESS_KEY}"
Environment="MINIO_SECRET_KEY=${SECRET_KEY}"
ExecStart=/usr/local/bin/minio server /usr/local/share/minio
Restart=always
""")
subprocess.run(['systemctl', 'daemon-reload'])
subprocess.run(['systemctl', 'start', 'minio'])
subprocess.run(['systemctl', 'enable', 'minio'])
if __name__ == "__main__":
install_minio()
请注意,上述脚本中的 ACCESS_KEY
和 SECRET_KEY
设置为 minioadmin
,在实际生产环境中,您应该使用更复杂且随机的密钥来提高安全性。此外,根据您的具体需求和环境,您可能需要对脚本进行相应的调整。