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 is the module-membership gate, while invalid minio_seq or minio_type values fail identity validation explicitly. 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
Re-running minio.yml may restart a running object-storage service, but 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.
Both deployment and removal roles default minio_type to silo; other values are rejected. The removal examples still pass it explicitly as part of reviewing the package, service, certificate directory, and data paths; it is not an additional interactive confirmation gate.
Cheatsheet
If the configuration group name differs from minio_cluster, note that -l takes an Ansible group or host pattern, not 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: