Usage
After you configure and deploy Silo with the playbook, use this page to access it through the compatible S3 and mcli interfaces.
Deploy Cluster
First, define a single-node, single-disk object-storage cluster in the config inventory and explicitly pin its engine:
Then, run the minio.yml playbook provided by Pigsty against the defined group (here minio):
Note that deploy.yml automatically creates predefined Silo clusters, so you do not need to run the minio.yml playbook again manually.
For a production multi-node deployment, read Pigsty’s configuration documentation and verify the operational constraints of the Silo version you deploy.
Access Cluster
Production environments should access object storage through a domain name and HTTPS, which is also the default configuration. If you explicitly set minio_https to false, HTTP is available instead. In either case, ensure that the object-storage service domain (default sss.pigsty) points to the service node or load balancer.
- You can add static resolution records in
node_etc_hosts, or manually modify the/etc/hostsfile - You can add a record on the internal DNS server if you already have an existing DNS service
- If you have enabled the DNS server on Infra nodes, you can add records in
dns_records
For production, we recommend the first method—static DNS records—so object storage does not depend on dynamic DNS.
Point the S3 service domain to the IP address and service port of a Silo node or load balancer.
Pigsty uses sss.pigsty as the default S3 service domain and serves it on port 9000. The role does not automatically create a global DNS record for minio_domain; configure resolution explicitly as described above.
Some examples deploy HAProxy on the Silo cluster to expose the service; those templates use port 9002 as the unified service port.
Adding Alias
To access the Silo cluster with the mcli client, first configure a server alias:
After a full minio.yml run with minio_provision enabled, the role configures the default alias for the Ansible execution user on every Infra node and every actual object-storage member discovered by minio_cluster. A host in both sets is configured only once.
For the full mcli command reference, see the upstream MinIO Client documentation.
The password S3User.MinIO in the above examples is the Pigsty default. If you modified minio_secret_key during deployment, please use your actual configured password.
User Management
You can manage Silo application users with mcli. Default provisioning already creates pgbackrest, s3user_meta, and s3user_data; the example below creates one additional user and attaches the generated policy for the default data bucket:
Bucket Management
You can perform CRUD operations on buckets in Silo:
Object Management
You can also perform CRUD operations on objects within buckets. For details, please refer to the official documentation: Object Management
Using rclone
The Pigsty repository provides rclone, a convenient multi-cloud object-storage client that can access Silo.
If Silo uses HTTPS (the default), ensure that the client trusts Pigsty’s CA certificate (/etc/pki/ca.crt), or add no_check_certificate = true to the rclone configuration to skip certificate verification (not recommended for production).
Configure Backup Repository
In Pigsty, the MINIO module’s primary use case is as an S3 backup repository for pgBackRest.
When you set pgbackrest_method to minio, the PGSQL module uses the S3-compatible repository preset with that name. Silo deployed by the MINIO module works directly with this preset.
If you use a multi-node Silo cluster behind a load balancer, adjust s3_endpoint and storage_port accordingly.