Minio 单机部署 systemd管理
官网安装地址
https://min.io/docs/minio/linux/operations/install-deploy-manage/deploy-minio-single-node-multi-drive.html#download-the-minio-server
安装
wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20240704142545.0.0-1.x86_64.rpm -O minio.rpm
wget https://home.vimll.com:9999/download/minio/minio-20240704142545.0.0-1.x86_64.rpm -O minio.rpm --no-check-certificate
sudo yum install minio.rpm
创建service
cd /lib/systemd/system/; curl -O https://raw.githubusercontent.com/minio/minio-service/master/linux-systemd/minio.service
或
cat <<EOT >> /etc/systemd/system/minio.service
[Unit]
Description=MinIO
Documentation=https://min.io/docs/minio/linux/index.html
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio
[Service]
WorkingDirectory=/usr/local
User=minio-user
Group=minio-user
ProtectProc=invisible
EnvironmentFile=-/etc/default/minio
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
# MinIO RELEASE.2023-05-04T21-44-30Z adds support for Type=notify (https://www.freedesktop.org/software/systemd/man/systemd.service.html#Type=)
# This may improve systemctl setups where other services use `After=minio.server`
# Uncomment the line to enable the functionality
# Type=notify
# Let systemd restart this service always
Restart=always
# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536
# Specifies the maximum number of threads this process can create
TasksMax=infinity
# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no
[Install]
WantedBy=multi-user.target
# Built for ${project.name}-${project.version} (${project.name})
EOT
创建配置文件
cat <<EOT > /etc/default/minio
# Volume to be used for MinIO server.
MINIO_VOLUMES="/home/minio_data"
# Use if you want to run MinIO on a custom port.
MINIO_OPTS="--address :9199 --console-address :9001"
# Root user for the server.
MINIO_ROOT_USER=root
# Root secret for the server.
MINIO_ROOT_PASSWORD=MinIO@123
# set this for MinIO to reload entries with 'mc admin service restart'
MINIO_CONFIG_ENV_FILE=/etc/default/minio
EOT
mkdir /home/minio_data
groupadd -r minio-user
useradd -M -r -g minio-user minio-user
chown minio-user:minio-user /home/minio_data
chown minio-user:minio-user /etc/default/minio
systemctl daemon-reload
systemctl enable --now minio.service
S3-API: http://192.168.78.161:9199
Console: http://192.168.78.161:9001
cat /etc/ssh/sshd_config
TCPKeepAlive yes
ClientAliveInterval 300
ClientAliveCountMax 3
ssh -L 8888:192.168.78.161:9001 root@112.13.201.242 -p2022 -o ServerAliveInterval=300
ssh -f -N -L 本机IP:8888:192.168.78.161:9001 root@112.13.201.242 -p2022
http://127.0.0.1:8888/login
wget https://home.vimll.com:9999/download/mc -O /usr/local/bin/mc --no-check-certificate
chmod a+x /usr/local/bin/mc
mc --version
mc config host add minio http://192.168.78.161:9199 root MinIO@123
mc config host list
mc config host remove minio
mc ls minio
~/.mc/config.json
mc mb minio/test 创建bucket
mc rb minio/test 删除bucket
mc rb minio/test --force 删除有文件的bucket
mc cp file.txt minio/test/ 上传文件
mc ls minio/test/
mc cp /etc minio/test/ --recursive 上传目录
mc rm minio/test/file.txt 删除文件
mc rm minio-S3/test/etc --recursive --force 删除目录
ls 列出文件和文件夹。
mb 创建一个存储桶或一个文件夹。
cat 显示文件和对象内容。
pipe 将一个STDIN重定向到一个对象或者文件或者STDOUT。
share 生成用于共享的URL。
cp 拷贝文件和对象。
mirror 给存储桶和文件夹做镜像。
find 基于参数查找文件。
diff 对两个文件夹或者存储桶比较差异。
rm 删除文件和对象。
events 管理对象通知。
watch 监听文件和对象的事件。
policy 管理访问策略。
session 为cp命令管理保存的会话。
config 管理mc配置文件。
update 检查软件更新。
version 输出版本信息。
mc admin 管理员命令
mc admin service 重启或停止所有 MinIO 服务器
mc admin update 更新所有 MinIO 服务器
mc admin info 显示 MinIO 服务器信息
mc admin user 管理 MinIO 部署上的用户
mc admin group 组管理
mc admin policy 管理用于 MinIO 基于策略的访问控制 (PBAC) 的策略
mc admin config 管理 MinIO 服务器的配置设置
mc admin heal 扫描损坏的对象并修复这些对象
mc admin profile 生成用于调试目的的配置文件数据
mc admin top MinIO 提供 top like 统计
mc admin trace 显示 MinIO 服务器的 http 跟踪
mc admin console 显示 MinIO 服务器的控制台日志
mc admin prometheus 管理 prometheus 配置
mc admin kms 执行 KMS 管理操作
mc admin subnet 子网相关命令
mc admin bucket 管理 MinIO 服务器中定义的桶
mc admin tier 为 ILM 转换配置远程层目标
权限管理
touch testPolicy1.json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets",
"s3:ListBucket",
"s3:GetBucketLocation",
"s3:GetObject",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::test/*"
]
}
]
}
// 查看策略minio的权限列表
mc admin policy list minio
// 给策略minio添加自定义策略权限文件testPolicy1.json,名字为test1
mc admin policy add minio test1 testPolicy1.json
// 添加用户,账号密码为testuser1 a12345678,与权限策略test1绑定
mc admin user add minio testuser1 a12345678 test1
// 查询别名minio下面的所有用户状态
mc admin user list minio
// 给用户testuser1 设置权限策略test1
mc admin user set-policy minio testuser1 test1
// 启用用户testuser1
mc admin user enable minio testuser1
// 禁用用户testuser1
mc admin user disable minio testuser1