Dans ce tutoriel, je vais vous expliquer comment mettre en place une infrastructure de stockage S3 avec Minio à l’aide de Docker.
Avant d’aller plus loin, je vais vous présenter rapidement S3 qui est la contraction de Simple Storage Service. S3 a été créé par Amazon comme service de stockage disponible depuis Internet, qui utilise le protocole HTTPS.
Depuis sa création en 2006, S3 est devenu un vrai standard comme protocole stockage, de nombreux logiciels proposent de gérer le stockage via ce protocole comme les logiciels de sauvegarde.
La grande force du stockage S3 est l’utilisation de protocole HTTPS, qui permet d’accéder même à travers Internet.
Minio a développer un service de stockage type S3, open source et gratuit et disponible en conteneur, ce que nous allons voir dans ce tutoriel.
Pour faire fonctionner Minio vous aurez besoin d’une machine sous Linux (pour ma part Ubuntu) avec Docker d’installé et docker-compose.
Il est possible d’installer le serveur Minio directement sur Linux, Windows et Mac
Déployer le serveur Minio avec Docker
Si vous avez déjà lu plusieurs tutoriels sur les applications où j’utilise Docker, vous savez que j’ai l’habitude de travailler dans le répertoire /containers
.
On va commencer par créer un dossier, qui va par la suite contenir le fichier docker-compose.yml
pour notre serveur Minio ainsi que le stockage des données.
Créer un dossier :
sudo mkdir minios3
Maintenant, on va créer notre fichier docker-compose.yml.
sudo nano docker-compose.yml
Copier ensuite le contenu ci-dessous :
Modifier la variable MINIO_ROOT_PASSWORD avec un mot de passe fort.
Sauvegarder le fichier.
On est prêt à démarrer notre serveur stockage S3 avec Minio.
Télécharger l’image :
sudo docker-compose pull
Démarrer le conteneur :
sudo docker-compose up -d
Afficher les logs du conteneur pour vous assurez que tout fonctionne :
sudo docker-compose logs -f
Le serveur MINIO est ligne.
Configurer un bucket pour commencer à stocker des données
Pour découvrir Minio, on va utiliser l’interface graphique.
Un bucket est un espace des stockages.
Depuis un navigateur internet aller à l’adresse : https://ip-server:9001
Vous devriez arriver sur la page d’authentification.
Une fois connecté, cliquer sur Buckets 1 qui se trouve dans le menu de gauche.
Cliquer sur le bouton Create Bucket + 1.
Dans ce tutoriel de découverte, on va créer un bucket « simple », nommer le bucket 1 et cliquer ensuite sur Create Bucket 2.
Le bucket est maintenant créé.
Nous avons créé le premier Bucket, qui va nous permettre de stocker des fichiers.
Installer le client Minio et transférer son premier fichier
Dans cette dernière partie du tutoriel, je vais vous expliquer comment installer le client Minio, créer un alias pour se connecter au serveur Minio et transférer un fichier dans le bucket que l’on vient de créer.
Installer le client Minio
Pour ce tutoriel, j’ai utilisé un autre ordinateur avec Ubuntu pour l’installation du client.
Le client Minio est disponible pour différents OS :
- Linux
- Windows
- Mac
https://min.io/docs/minio/linux/reference/minio-mc.html
On va commencer par télécharger le client :
wget https://dl.min.io/client/mc/release/linux-amd64/mc
Maintenant, on va rentre le fichier executable :
chmod +x mc
Pour finir l’installation, on va déplacer mc
le fichier dans /usr/local/bin
.
sudo mv mc /usr/local/bin
Pour tester le bon fonctionne du client entrer la commande suivante :
mc
L’aide de la commande
mc
doit s’afficher.
Configurer l’accès au serveur Minio
Maintenant, on va configurer l’accès à notre serveur Minio, pour cela on va créer un alias qui va contenir un nom, l’url et les identifiants de connexion.
Ensuite toutes les commandes de manipulation devront conteneur cet alias.
L’utilisation d’alias permet de créer plusieurs accès à des serveurs de type S3.
Pour créer un alias :
mc alias set <aliasname> <url-minio-server> <login> <password>
Ce qui donne ici :
mc alias set mys3 http://192.168.100.30:9000 minioadmin minioadmin
Pour tester le fonctionne de notre alias, on va utiliser 2 commandes.
Afficher les informations du serveur :
mc admin info <alias>
Afficher la liste des buckets :
mc ls <alias>
Transférer un fichier avec le client Minio sur le serveur
Pour finir ce tutoriel, je vais vous expliquer comment copier un fichier sur le Minio à l’aide du client.
Pour illustrer le tutoriel, on va copier le fichier tabby-1.0.187….deb dans le bucket.
Voici la synthaxe pour copier un fichier avec le client Minio :
mc cp <local-file> <alias>/<bucket-name>
Ce qui donne :
mc cp tabby-1.0.187-linux-x64.deb mys3/rdritcom
Pour vérifier que le fichier est copier, on peut regarder sur l’interface web :
On peut aussi le faire avec le client en affichant le contenu du bucket :
mc ls mys3/rdritcom
Ce premier tutoriel sur Minio est terminé, le but de celui-ci est de vous faire découvrir l’outil et vous montrez que vous pouvez héberger votre propre infrastructure S3.
L’utilisation de Minio est intéressant pour stocker des sauvegardes par exemple.
Dans d’autre tuto, nous verrons comment configurer Nginx avec Minio pour avoir un reverse proxy, configurer la durée de vie des fichiers sur un bucket …