centos7 安装minio

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