Playbook
The MINIO module provides two built-in playbooks:
minio.yml: Install and configure Silominio-rm.yml: Remove Silo, its configuration, and optionally its data
minio.yml
minio.yml runs with hosts: all, but its pre-tasks skip hosts where minio_cluster is undefined. The role then validates that:
minio_clusteris defined and non-emptyminio_seqis defined and is a non-negative integerminio_typemust equalsilo
Thus, minio_cluster determines module membership. Invalid minio_seq or minio_type values cause identity validation to fail. Do not define minio_cluster in all.vars.
The main task tags are:
minio-id: Validate identity and compute actual members, node names, and volume parameters fromminio_clusteracross the inventoryminio_install: Create theminioOS user, install Silo andmcli, and prepare data directoriesminio_os_userminio_pkgminio_dir
minio_config: Render/etc/default/silo,/etc/systemd/system/silo.service, certificates, and DNSminio_confminio_certminio_dns
minio_launch: Start or restartsilo.serviceminio_register: Write VictoriaMetrics FileSD targetsminio_provision: Have the cluster’s first member provisionmclialiases, buckets, and users once
If you run minio.yml again, it can restart a running object-storage service. It does not proactively rebuild data. Schedule production runs according to the cluster’s failure budget.
minio-rm.yml
minio-rm.yml uses the same minio_cluster membership gate and identity validation, then runs:
minio_safeguard: Accidental-removal protection, defaultfalseminio_pause: Pause for 3 seconds so you can abort with Ctrl+Cminio_deregister: Remove VictoriaMetrics targets and DNS recordsminio_svc: Stop and disable the Silo serviceminio_data: Delete data and configuration according tominio_rm_dataminio_pkg: Uninstall Silo andmcliaccording tominio_rm_pkg
minio_rm_data defaults to true. A full removal run deletes every expanded minio_data directory. Before running it, verify minio_cluster, minio_seq, minio_type: silo, and all disk mount paths. To retire only the service while retaining data, explicitly pass -e minio_rm_data=false.
Deployment and removal both default minio_type to silo. Both roles reject other values.
The removal examples pass this value explicitly for review of the package, service, certificate directory, and data paths. It does not add an interactive confirmation step.
Cheatsheet
If the group name differs from minio_cluster, give -l an Ansible group or host pattern. It does not take the logical cluster name. Use a limit expression that covers every intended member.
Safeguard
For production clusters, enable accidental-removal protection in cluster variables:
After carefully verifying the target and backups, explicitly override it when destruction is required:
Demo
Was this page helpful?
Thanks—your feedback helps us improve this page.
What got in the way? (optional)