Minio单机部署 systemd管理
官网安装地址
https://min.io/docs/minio/linux/operations/install-deploy-manage/deploy-minio-single-node-multi-drive.html#download-the-minio-server安装wgethttps://dl.min.io/server/minio/release/linux-amd64/archive/minio-20240704142545.0.0-1.x86_64.rpm -O minio.rpmwgethttps://home.vimll.com:9999/download/minio/minio-20240704142545.0.0-1.x86_64.rpm -O minio.rpm --no-check-certificatesudoyum 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=MinIODocumentation=https://min.io/docs/minio/linux/index.htmlWants=network-online.targetAfter=network-online.targetAssertFileIsExecutable=/usr/local/bin/minio
[Service]
WorkingDirectory=/usr/localUser=minio-userGroup=minio-userProtectProc=invisibleEnvironmentFile=-/etc/default/minioExecStartPre=/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 alwaysRestart=always# Specifies the maximum file descriptor number that can be opened by this processLimitNOFILE=65536# Specifies the maximum number of threads this process can createTasksMax=infinity# Disable timeout logic and wait until process is stoppedTimeoutStopSec=infinitySendSIGKILL=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_datagroupadd-r minio-useruseradd-M -r -g minio-user minio-userchownminio-user:minio-user /home/minio_datachownminio-user:minio-user /etc/default/miniosystemctldaemon-reloadsystemctlenable --now minio.serviceS3-API:http://192.168.78.161:9199 Console:http://192.168.78.161:9001cat/etc/ssh/sshd_configTCPKeepAliveyesClientAliveInterval300ClientAliveCountMax3ssh-L 8888:192.168.78.161:9001 root@112.13.201.242 -p2022 -o ServerAliveInterval=300ssh-f -N -L 本机IP:8888:192.168.78.161:9001 root@112.13.201.242 -p2022http://127.0.0.1:8888/loginwgethttps://home.vimll.com:9999/download/mc -O /usr/local/bin/mc --no-check-certificatechmoda+x /usr/local/bin/mcmc--versionmcconfig host add minio http://192.168.78.161:9199 root MinIO@123mcconfig host listmcconfig host remove miniomcls minio
~/.mc/config.json
mcmb minio/test 创建bucketmcrb minio/test 删除bucketmcrb minio/test --force 删除有文件的bucketmccp file.txt minio/test/ 上传文件mcls minio/test/mccp /etc minio/test/ --recursive 上传目录mcrm minio/test/file.txt 删除文件mcrm 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 输出版本信息。mcadmin 管理员命令mcadmin service 重启或停止所有 MinIO 服务器mcadmin update 更新所有 MinIO 服务器mcadmin info 显示 MinIO 服务器信息mcadmin user 管理 MinIO 部署上的用户mcadmin group 组管理mcadmin policy 管理用于 MinIO 基于策略的访问控制 (PBAC) 的策略mcadmin config 管理 MinIO 服务器的配置设置mcadmin heal 扫描损坏的对象并修复这些对象mcadmin profile 生成用于调试目的的配置文件数据mcadmin top MinIO 提供 top like 统计mcadmin trace 显示 MinIO 服务器的 http 跟踪mcadmin console 显示 MinIO 服务器的控制台日志mcadmin prometheus 管理 prometheus 配置mcadmin kms 执行 KMS 管理操作mcadmin subnet 子网相关命令mcadmin bucket 管理 MinIO 服务器中定义的桶mcadmin tier 为 ILM 转换配置远程层目标
权限管理
touchtestPolicy1.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的权限列表mcadmin policy list minio //给策略minio添加自定义策略权限文件testPolicy1.json,名字为test1mcadmin policy add minio test1 testPolicy1.json//添加用户,账号密码为testuser1 a12345678,与权限策略test1绑定mcadmin user add minio testuser1 a12345678 test1//查询别名minio下面的所有用户状态mcadmin user list minio//给用户testuser1 设置权限策略test1mcadmin user set-policy minio testuser1 test1//启用用户testuser1 mcadmin user enable minio testuser1 //禁用用户testuser1 mcadmin user disable minio testuser1