Installer et Configurer MinIO Facilement

Introduction à MinIO

Dans le monde du stockage objet, tout le monde connaît S3 d’Amazon. Mais quand il s’agit d’auto-héberger une solution open-source, légère et 100% compatible API S3, c’est le nom de MinIO qui revient partout.
Que tu sois admin sys, dev, ou juste bricoleur, déployer MinIO, c’est avoir une brique solide, performante et flexible, utilisable aussi bien en standalone que dans un cluster distribué, avec des perfs qui n’ont rien à envier aux gros du marché.


Pourquoi choisir MinIO ?

  • Open source : code auditable, communauté active, releases régulières.
  • Compatibilité API S3 : aucune différence pour les apps, elles causent avec MinIO comme avec Amazon S3.
  • Simplicité d’installation : un binaire et c’est parti !
  • Performance : capable de gérer des pétaoctets sans broncher.
  • Intégration facile : fonctionne avec Nextcloud, Kubernetes, Docker, etc.

minio S3 API

Architecture MinIO et concepts clés

MinIO, c’est du stockage objet pur jus. L’API S3, c’est la référence. Quand tu déploies MinIO, toutes tes applis qui parlent S3 (backup, applications cloud-native, CI/CD…) marchent sans modif.

  • Buckets : les “dossiers racines” pour stocker les objets
  • Objets : fichiers stockés avec des métadonnées
  • Users/Policies : gestion fine des accès via utilisateurs et politiques IAM à la sauce MinIO
  • Clusters : pour le stockage distribué, la haute dispo, la résilience

Prérequis pour déployer MinIO

  • OS supportés : toutes les distros Linux modernes (Debian, Ubuntu, CentOS, Fedora…)
  • Réseau : ports TCP à ouvrir (par défaut : 9000 et 9001 pour le web UI)
  • Stockage : SSD conseillé, surtout pour le distribué
  • RAM/CPU : MinIO est léger, mais pour du distribué, prévois au moins 2 vCPU et 4 Go de RAM

Déploiement manuel de MinIO

Installation sur Ubuntu/Debian

wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
sudo mv minio /usr/local/bin/

Lancer MinIO en standalone

export MINIO_ROOT_USER="admin"
export MINIO_ROOT_PASSWORD="SuperSecret42"
minio server /data

Accède à l’UI web sur :
http://localhost:9000

Démarrage en tant que service systemd

Crée /etc/systemd/system/minio.service :

[Unit]
Description=MinIO
After=network.target

[Service]
User=minio
Group=minio
ExecStart=/usr/local/bin/minio server /data --console-address ":9001"
Environment="MINIO_ROOT_USER=admin"
Environment="MINIO_ROOT_PASSWORD=SuperSecret42"
Restart=always
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

Puis :

sudo systemctl daemon-reload
sudo systemctl enable --now minio

En cluster distribué

minio server http://minio{1...4}/data

(à adapter selon ton infra, voir la doc MinIO pour le vrai cluster prod)


Déploiement automatisé avec Ansible MinIO

Automatiser, c’est la base. Avec Ansible et le rôle ricsanfre.minio, tu déploies MinIO proprement, que ce soit en standalone ou en cluster distribué, le tout sans prise de tête.

Exemple de playbook Ansible pour MinIO

Structure du playbook :

---
- name: Déploiement de MinIO avec Ansible
hosts: minio_servers
become: true
roles:
- role: ricsanfre.minio
vars:
minio_server_mode: "standalone"
minio_version: "RELEASE.2024-06-18T21-35-28Z" # Optionnel : dernière version stable
minio_access_key: "admin"
minio_secret_key: "SuperSecret42"
minio_server_datadirs:
- "/data"
minio_console_port: 9001

Configuration avancée

Sécuriser MinIO avec HTTPS

Il te suffit de placer tes certs TLS dans /etc/minio/certs/ (certificat et clé), et MinIO bascule en HTTPS.
Pense à ouvrir le bon port (par défaut 9000 ou 9001 si modifié).

Gérer les utilisateurs et policies

Avec mc (MinIO Client) :

mc admin user add myminio alice S3cr3tPass
mc admin policy set myminio readwrite user=alice

Stockage distribué

Pour la résilience, MinIO tourne en mode distribué (erasure code). Ça permet de survivre à la perte de disques ou nodes.

minio server http://minio{1...4}/data

Exploitation quotidienne

  • mc ls myminio/bucket : lister les fichiers
  • mc cp fichier.txt myminio/bucket/ : uploader un fichier
  • mc admin info myminio : infos système
  • Logs : consulte /var/log/syslog ou le journal systemd
  • Backup config : sauvegarde /etc/minio et le binaire

Intégration avec d’autres outils

  • Nextcloud : ajoute MinIO comme stockage externe, paramètre l’URL S3 et roule !
  • Applications cloud-native : compatible direct avec tous les SDK S3 (AWS CLI, boto3 pour Python…)
  • CI/CD, sauvegarde, logs, etc. : MinIO peut servir de backend pour une flopée d’outils

FAQ & erreurs courantes

  • Erreur de droits ? Vérifie que l’utilisateur système a bien accès à /data
  • Ports déjà utilisés ? Change le port de MinIO (--address ":9002")
  • Problèmes d’accès via API S3 ? Check le firewall et les variables d’accès

Conclusion & ressources

Déployer MinIO te permet d’avoir une solution S3 prête à l’emploi, que tu sois en local ou dans le cloud, en mode solo ou distribué. Le tout open source, flexible, et bien adapté à l’écosystème Linux.

Pour aller plus loin :

Besoin d’aide ?

Si tu as besoin de mettre en place une app MinIO, tu peux nous contacter ici => page de contact.

Je mets à ta disposition mon expertise pour t’accompagner dans la gestion de ton infrastructure.

Le partage nous aide à nous faire connaître, merci pour ton partage 🫀

Laisser un commentaire