参数列表
MINIO 模块共有 22 个公开参数,分为两个部分:
MINIO:19 个参数,用于部署 Silo 对象存储集群MINIO_REMOVE:3 个参数,控制对象存储集群的移除
自 Pigsty v3.6 起,minio.yml 剧本不再包含移除功能,移除相关参数已迁移至独立的 minio_remove 角色和 minio-rm.yml 剧本。
参数概览
MINIO 参数组用于配置 Silo 对象存储集群,包括身份、存储路径、端口、认证凭据以及存储桶和用户置备。
| 参数 | 类型 | 级别 | 说明 |
|---|---|---|---|
minio_type |
enum |
G/C |
保留的后端选择器,当前只接受 silo |
minio_seq |
int |
I |
minio 实例标识符,必填 |
minio_cluster |
string |
C |
对象存储集群名称,必填 |
minio_user |
username |
C |
minio 操作系统用户,默认为 minio |
minio_https |
bool |
G/C |
是否为对象存储启用 HTTPS?默认为 true |
minio_node |
string |
C |
minio 节点名模式 |
minio_data |
path |
C |
minio 数据目录,使用 {x...y} 指定多个磁盘 |
minio_volumes |
string |
C |
minio 核心参数,指定成员节点与磁盘,默认不指定 |
minio_domain |
string |
G |
minio 外部域名,默认为 sss.pigsty |
minio_port |
port |
C |
minio 服务端口,默认为 9000 |
minio_admin_port |
port |
C |
minio 控制台端口,默认为 9001 |
minio_access_key |
username |
C |
根访问密钥,默认为 minioadmin |
minio_secret_key |
password |
C |
根密钥,默认为 S3User.MinIO |
minio_extra_vars |
string |
C |
minio 服务器的额外环境变量 |
minio_provision |
bool |
G/C |
是否执行 minio 资源置备任务?默认为 true |
minio_alias |
string |
G |
minio 部署的客户端别名 |
minio_endpoint |
string |
C |
minio 部署的客户端别名对应的端点 |
minio_buckets |
bucket[] |
C |
待创建的 minio 存储桶列表 |
minio_users |
user[] |
C |
待创建的 minio 用户列表 |
MINIO_REMOVE 参数组控制对象存储集群的移除行为,包括防误删保险、数据清理以及软件包卸载。
| 参数 | 类型 | 级别 | 说明 |
|---|---|---|---|
minio_safeguard |
bool |
G/C/A |
防止意外删除?默认为 false |
minio_rm_data |
bool |
G/C/A |
移除时是否删除 Silo 数据?默认为 true |
minio_rm_pkg |
bool |
G/C/A |
移除时是否卸载 Silo 与 mcli?默认为 false |
其中,minio_volumes 与 minio_endpoint 为自动生成的参数,但您可以显式覆盖指定这两个参数。
默认参数
MINIO:19 个公开参数,定义于 roles/minio/defaults/main.yml
MINIO_REMOVE:3 个参数,定义于 roles/minio_remove/defaults/main.yml
MINIO
本节包含 minio 角色的参数,
这些是 minio.yml 剧本使用的操作标志参数。
minio_type
参数名称:minio_type,类型:enum,层次:G/C
保留的对象存储后端选择器,默认值与当前唯一合法值都是 silo。Silo 沿用 MinIO S3/Admin API、MINIO_* 环境变量与磁盘格式。
minio 与 rustfs 不再是有效取值,会在角色身份检查阶段失败。旧 MinIO 集群升级到 v4.5 前,必须独立验证备份、MinIO → Silo 数据兼容性与回滚方案;修改参数本身不会执行数据迁移。
部署与移除角色都将 minio_type 默认为 silo。执行 minio-rm.yml 时仍必须提供 minio_cluster 与 minio_seq 身份参数,并受 minio_safeguard、数据与软件包清理开关约束;默认引擎值不会绕过这些删除保护。
minio_seq
参数名称: minio_seq, 类型: int, 层次:I
对象存储实例标识符,必需的身份参数。没有默认值,您必须手动分配这些序列号。
通常的最佳实践是,从 1 开始分配,依次加 1,并永远不使用已经分配的序列号。
序列号与集群名称 minio_cluster 一起,唯一标识每一个对象存储实例(例如:minio-1)。
在多节点部署中,序列号还会用于生成节点名称,写入 /etc/hosts 文件中进行静态解析。
minio_cluster
参数名称: minio_cluster, 类型: string, 层次:C
对象存储集群名称,必填且没有默认值。当部署多个集群时,使用此参数区分各自的成员与监控身份。
集群名称与序列号 minio_seq 一起,唯一标识每一个对象存储实例。
例如,当集群名为 minio,序列号为 1 时,实例名称为 minio-1。
角色会在整个清单中按主机的 minio_cluster 值查找成员,因此 Ansible Group 名称可以与集群标识不同。请在对象存储分组的集群变量中显式定义本参数,不要放入 all.vars,否则会把所有主机标记为 MINIO 模块成员。
部署多套集群时,还应分别设置 minio_alias、minio_domain、minio_endpoint,避免共享客户端别名与域名冲突。
minio_user
参数名称: minio_user, 类型: username, 层次:C
对象存储操作系统用户名,默认为 minio。
Silo 将以此用户身份运行,证书位于 ~/.minio/certs/。
minio_https
参数名称: minio_https, 类型: bool, 层次:G/C
是否为对象存储服务启用 HTTPS?默认为 true。
Pigsty 默认的 pgBackRest minio 仓库预设使用 HTTPS,并通过 /etc/pki/ca.crt 校验证书,因此按默认配置使用时应保持本参数为 true。pgBackRest 本身并不强制 Silo 使用 HTTPS;若显式改用 HTTP,还必须同步调整 pgbackrest_repo 的存储 TLS 选项,不能只切换本参数。
启用 HTTPS 后,Pigsty 会自动为所选服务端签发证书,证书包含 minio_domain 指定的域名以及各个节点的 IP 地址。
minio_node
参数名称: minio_node, 类型: string, 层次:C
默认值为:${minio_cluster}-${minio_seq}.pigsty,即以实例名 + .pigsty 后缀作为默认的节点名。
在这里指定的域名模式用于生成节点名,并写入所有 Silo 节点的 /etc/hosts。
minio_data
参数名称: minio_data, 类型: path, 层次:C
Silo 数据目录,默认值为 /data/minio。该参数填写文件系统目录,而不是 /dev/sdb 之类的裸块设备;MINIO 角色会创建目录并设置权限,但不会格式化或挂载生产服务器的数据盘。
单机单盘 可以使用根文件系统中的普通目录,但只适合开发测试。多机单盘、多机多盘 与 单机多盘 应使用非根盘的独立持久文件系统。分布式 Silo 会拒绝根文件系统上的数据路径。
/data/minio 可以是独立挂载点 /data 下的子目录;如果 /data 只是 / 下的普通目录,则仍属于根盘。对于多盘部署,可以使用 {x...y} 记法指定多个挂载点,例如 /data{1...4}/minio,每个展开后的路径应对应独立文件系统。
完整的挂载要求与检查方法参见 集群配置:存储路径与挂载。
minio_volumes
参数名称: minio_volumes, 类型: string, 层次:C
Silo 核心卷参数,默认不指定;留空时会自动使用以下规则拼接生成:
- 在单机部署(无论是单盘还是多盘)模式下,
minio_volumes直接使用minio_data的值,进行单机部署。 - 在多机部署模式下,
minio_volumes会使用minio_node,minio_port,minio_data参数的值生成多节点的地址,用于多机部署。 - 在多池部署模式下,通常需要您直接指定并覆盖
minio_volumes的值,以指定多个节点池的地址。
指定本参数时,您需要确保使用的参数与 minio_node, minio_port, minio_data 三者匹配。
minio_domain
参数名称: minio_domain, 类型: string, 层次:G
Silo 服务域名,默认为 sss.pigsty。
客户端可以通过此域名访问 Silo S3 服务;该名称会包含在角色签发的 SSL 证书 SAN(Subject Alternative Name)字段中,但
MINIO 角色不会自动为 minio_domain 创建 DNS 记录。请通过 node_etc_hosts
或 dns_records 显式添加解析,将它指向 Silo 节点 IP(单机部署)或负载均衡器 VIP(多节点部署)。
minio_port
参数名称: minio_port, 类型: port, 层次:C
Silo 服务端口,默认为 9000。
这是 Silo S3 API 的监听端口,客户端通过此端口访问对象存储服务。在多节点部署中,此端口也用于节点间通信。
minio_admin_port
参数名称: minio_admin_port, 类型: port, 层次:C
Silo 控制台端口,默认为 9001。
这是 Silo Web 管理控制台的监听端口。可以通过 https://<minio-ip>:9001 访问图形化管理界面。
如果希望通过 Nginx 对外暴露 Silo 控制台,可以将其添加到 infra_portal 中。控制台需要使用 HTTPS 和 WebSocket。
minio_access_key
参数名称: minio_access_key, 类型: username, 层次:C
根访问用户名(access key),默认为 minioadmin。
这是 Silo 的超级管理员用户名,拥有对所有存储桶和对象的完全访问权限。建议在生产环境中修改此默认值。
minio_secret_key
参数名称: minio_secret_key, 类型: password, 层次:C
根访问密钥(secret key),默认为 S3User.MinIO。
这是 Silo 超级管理员密码,与 minio_access_key 配合使用。
使用默认密码是高危行为!请务必在您的生产环境部署中修改此密码。
提示:执行 ./configure -g 时,会随机化配置向导识别的默认密码;完整范围见 默认凭证清单。
minio_extra_vars
参数名称: minio_extra_vars, 类型: string, 层次:C
传递给 Silo 的额外环境变量。Silo 沿用 MINIO_* 变量名。
默认值为空字符串,您可以使用多行字符串来传递多个环境变量。例如:
minio_provision
参数名称: minio_provision, 类型: bool, 层次:G/C
是否执行 Silo 资源置备任务?默认为 true。
当启用时,Pigsty 将自动创建 minio_buckets 和 minio_users 中定义的存储桶和用户。
如果您不需要自动置备这些资源,可以将此参数设置为 false。
minio_alias
参数名称: minio_alias, 类型: string, 层次:G
本地 Silo 集群的 mcli 客户端别名,默认值为 sss。
启用 minio_provision 时,此别名会写入所有 Infra 节点与 Silo 成员上
Ansible 执行用户的 mcli 配置文件(~/.mcli/config.json);分组重叠的节点不会重复写入。
随后可以直接使用 mcli <alias> 命令访问 Silo,例如 mcli ls sss/。
如果部署多个 Silo 集群,需要为每个集群指定不同的别名以避免冲突。
minio_endpoint
参数名称:minio_endpoint, 类型: string, 层次:C
部署的客户端别名对应的端点。如果指定,minio_endpoint(例如 https://sss.pigsty:9002)会替代自动拼接的
<scheme>://<minio_domain>:<minio_port>,作为 Infra 节点与 Silo 成员上客户端别名的目标端点。
以上命令由角色以 Ansible 执行用户身份,在 Infra 节点与 Silo 成员上执行。
minio_buckets
参数名称: minio_buckets, 类型: bucket[], 层次:C
默认创建的 Silo 存储桶列表:
默认创建三个存储桶,各有不同的用途和策略:
pgsql存储桶:默认用于 PostgreSQL 的 pgBackREST 备份存储。meta存储桶:开放式存储桶,启用了版本控制(versioning),适合存储需要版本管理的重要元数据。data存储桶:开放式存储桶,用于其他用途,例如 Supabase 模板可能使用此存储桶存储业务数据。
每个存储桶都会创建一个同名的访问策略,例如 pgsql 策略拥有对 pgsql 存储桶的所有权限,以此类推。
您还可以在存储桶定义中添加 lock 标志,启用对象锁定功能,防止存储桶中的对象被意外删除。
minio_users
参数名称: minio_users, 类型: user[], 层次:C
要创建的 Silo 用户列表,默认值:
默认配置会创建三个用户,分别对应三个默认存储桶:
pgbackrest:用于 PostgreSQL pgBackREST 备份,拥有pgsql存储桶的访问权限。s3user_meta:用于访问meta存储桶。s3user_data:用于访问data存储桶。
提示:./configure -g 会默认修改配置文件模板中的这些密码,如果这些默认密码出现在模版文件中。
MINIO_REMOVE
本节包含 minio_remove 角色的参数,
这些是 minio-rm.yml 剧本使用的操作标志参数。
minio_safeguard
参数名称: minio_safeguard, 类型: bool, 层次:G/C/A
防止意外删除的保险开关,默认值为 false。
如果启用此参数,minio-rm.yml 剧本将中止并拒绝移除 Silo 集群,从而提供防止意外删除的保护。
建议在生产环境中启用此保险开关,防止误操作导致数据丢失:
minio_rm_data
参数名称: minio_rm_data, 类型: bool, 层次:G/C/A
移除时是否删除 Silo 数据与配置?默认值为 true。
启用后,minio-rm.yml 会删除数据目录、/etc/default/silo、.minio 用户目录,以及 /etc/systemd/system/silo.service。设置为 false 会保留这些数据与配置,但不会阻止服务注销、停止和禁用。
minio_rm_pkg
参数名称: minio_rm_pkg, 类型: bool, 层次:G/C/A
移除时是否卸载 Silo 软件包?默认值为 false。
启用后,minio-rm.yml 会卸载 silo 与 mcli。默认禁用此选项,以便保留软件包供后续使用。