Ubuntu

Installer Minio sur Ubuntu 18.04 LTS

Installer Minio sur Ubuntu 18.04 LTS
Minio est une solution auto-hébergée pour créer votre propre stockage d'objets. C'est une alternative à AWS S3, si vous avez déjà utilisé ce service. Le logiciel Minio lui-même est livré sous forme de binaire simple et même la documentation officielle vous suggère de l'utiliser de cette façon, au lieu d'utiliser un gestionnaire de paquets. Il y a bien sûr des images Docker si vous souhaitez les utiliser pour faire tourner minio sur votre VPS.

Dans ce tutoriel, nous allons installer et démontrer l'utilisation de Minio sur Ubuntu 18.04 Serveur LTS. Ce VPS a une IP statique et je vais configurer des enregistrements DNS et des connexions TLS pour rendre ce magasin d'objets aussi sécurisé et prêt pour la production que possible.

Conditions préalables

Voici les prérequis dont vous auriez besoin si vous souhaitez suivre :

  1. Un VPS exécutant Ubuntu ou toute autre distribution Linux avec une IP statique (IP_ADDRESS sera notre espace réservé, remplacez-le par l'adresse IP réelle de votre VPS)
  2. Un nom de domaine complet [FQDN]. Exemple.com sera notre espace réservé.

Installation et configuration diverses

Connectons-nous à notre VPS et préparons les choses pour que Minio fonctionne correctement.

1.  Configuration DNS

Accédez au serveur de noms où les enregistrements DNS de votre domaine sont conservés, il se trouve très probablement sur le site Web de votre registraire de domaine. Ajoutez un enregistrement A en pointant le nom de domaine complet que vous avez choisi (par exemple minio.Exemple.com ) à l'adresse IP_ADDRESS de votre VPS.

2.  Utilisateur Minio

Avant d'installer Minio, créons un nouveau compte utilisateur UNIX sous lequel minio s'exécutera. Nous ne voulons pas l'exécuter en tant que root ou en tant qu'utilisateur régulier qui peut avoir un accès sudo ou d'autres applications s'exécutant sous lui. Nous créons un compte système minio, nommé minio-user :

$ sudo useradd --system minio-user --shell /sbin/nologin

3.  Télécharger Minio

Ensuite, nous téléchargeons le binaire minio (il est écrit en Go qui se compile en un petit binaire léger).

Obtenez le binaire

$ curl -O https://dl.minio.io/server/minio/release/linux-amd64/minio

Déplacez le binaire vers un emplacement où les binaires sont généralement censés résider :

$ sudo mv minio /usr/local/bin

Rendez le fichier binaire exécutable et donnez à l'utilisateur et au groupe minio-user sa propriété :

$ sudo chmod +x /usr/local/bin/minio
$ sudo chown minio-user:minio-user /usr/local/bin/minio

4.  Fichiers de configuration /etc, scripts de démarrage et périphérique de stockage

Nous avons besoin de Minio pour démarrer avec le redémarrage du système et être reconnu comme un service en cours d'exécution par le système d'exploitation. Ne pas le faire entraînerait des catastrophes telles que lorsque le tueur OOM voit ce processus et décide qu'il n'est pas assez utile. Nous aurions également besoin d'un répertoire où les données réelles de notre magasin d'objets seront enregistrées :

$ sudo mkdir /usr/local/share/minio
$ sudo mkdir /etc/minio

Assurez-vous que minio a un contrôle total sur ces répertoires :

$ sudo chown minio-user:minio-user /usr/local/share/minio
$ sudo chown minio-user:minio-user /etc/minio

Dans le répertoire /etc/default, nous devons créer un fichier minio pour spécifier des variables d'environnement telles que le numéro de port sur lequel nous écouterons et le répertoire où les données doivent être enregistrées (le volume). Nous avons créé le volume plus tôt qui était le répertoire /usr/local/share/minio. Utilisez donc votre éditeur de texte préféré pour créer un fichier /etc/default/minio et ajoutez le contenu suivant à l'intérieur :

MINIO_VOLUMES="/usr/local/share/minio/"
MINIO_OPTS="-C /etc/minio --address minio.Exemple.com:443"

Assurez-vous que vous écrivez le FDQN désigné réel de votre VPS au lieu de la chaîne littérale minio.Exemple.com ci-dessus. Le numéro de port 9000 est ce qu'ils utilisent habituellement dans la documentation, mais nous allons utiliser l'installation TLS appropriée en écoutant au port 443. Comme il s'agit d'un numéro de port inférieur à 1024, nous devons expressément indiquer au système d'exploitation qu'il est acceptable que minio écoute sur ces ports :

$ sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/minio

Enfin, nous devons configurer le minio un service. Heureusement, le script qui le fait est disponible sur leur dépôt GitHub et nous le placerons à l'endroit approprié :

$ curl -O https://raw.githubusercontent.com/minio/minio-service/master/linux-systemd/
minio.un service
$ sudo mv minio.service /etc/systemd/system

Recharger toutes les unités systemd et permettre à minio de démarrer au démarrage

$ sudo systemctl démon-recharger
$ sudo systemctl activer minio

Enfin, assurez-vous que votre pare-feu autorise la communication sur le port 443.

LetsEncrypt TLS Certificates en utilisant Certbot

Nous devons négocier des certificats TLS entre notre serveur Minio et LetsEncrypt. Certbot est le client qui le fait pour nous et automatise également les renouvellements de certificats. Commençons par installer Certbot :

$ sudo apt mise à jour
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get mise à jour
$ sudo apt-get install certbot

Ensuite, installez les certificats, comme documenté par Minio Docs :

$ sudo certbot certonly --standalone -d minio.Exemple.com --staple-ocsp -m
nom d'[email protected] --d'accord

Ici, vous entrez votre FQDN pour le serveur Minio après l'indicateur -d et votre adresse e-mail après l'indicateur -m. L'adresse e-mail est importante car elle permet à LetsEncrypt de vous informer des renouvellements en attente.

Vos emails seront désormais présents dans /etc/letsencrypt/live/minio.Exemple.com. Bien sûr, le dernier nom de répertoire dépendra de votre FQDN choisi. Copiez maintenant les certificats dans le répertoire /etc/minio de Minio et donnez-lui la permission d'y accéder.

$ cp /etc/letsencrypt/live/minio.ranvirslog.com/chaîne complète.pem /etc/minio/certs/public.crt
$ cp /etc/letsencrypt/live/minio.ranvirslog.com/privkey.pem /etc/minio/certs/private.clé
$ chown minio-user:minio-user /etc/minio/certs/public.crt
$ chown minio-user:minio-user /etc/minio/certs/private.clé

Vous êtes maintenant prêt à utiliser le service :

$ sudo service minio start
$ sudo service minio statut

Production:

Chargé : chargé (/etc/systemd/system/minio.un service; désactivée; préréglage du fournisseur : activé)
Actif : actif (en cours d'exécution) depuis le mar. 2018-10-09 11:54:41 PDT ; il y a 5s
Documents : https://docs.minio.io
Processus : 15874 ExecStartPre=/bin/bash -c [ -n "$MINIO_VOLUMES" ] && echo "Variable
MINIO_VOLUMES non défini dans /etc/default/minio" (code=exited, status=0/SUCCESS)
PID principal : 15877 (mini)
Tâches : 13 (limite : 4915)
Groupe C : /système.tranche/minio.un service
└─15877 /usr/local/bin/minio server -C /etc/minio --address minio.Exemple.com:443 /usr/
local/partager/minio/
 
09 octobre 11:54:41 nom d'hôte minio[15877] : Accès au navigateur :
09 octobre 11:54:41 nom d'hôte minio[15877] : https://minio.Exemple.com
09 octobre 11:54:41 nom d'hôte minio[15877] : Accès en ligne de commande : https://docs.minio.io/docs/
minio-client-guide de démarrage rapide
09 octobre 11:54:41 nom d'hôte minio[15877] : $ mc config host add myminio
https://minio.Exemple.com
PAMH22LU3YJIFLU82H2E IKJ+qtc0Oqdn46R3dLfsjv5bCnm8UEeIBYpdG8qg

La sortie de cette commande contiendra la clé d'accès (PAMH22LU3YJIFLU82H2E) et la clé secrète (IKJ+qtc0Oqdn46R3dLfsjv5bCnm8UEeIBYpdG8qg) pour minio comme indiqué en gras ci-dessus. Vos clés seraient différentes alors ne copiez pas celles mentionnées ici.

Utiliser Minio

Ouvrez votre navigateur et visitez https://minio.Exemple.com (assurez-vous d'utiliser le nom de domaine complet que vous avez attribué) et utilisez l'accès et la clé secrète répertoriés dans votre commande service minio status pour vous connecter pour la première fois.

Et vous serez accueilli par l'interface utilisateur Minio.

Ici, vous pouvez utiliser le signe plus dans le coin inférieur gauche pour télécharger des fichiers ou créer un nouveau compartiment. J'ai créé un nouveau bucket appelé mybucket.

Vous pouvez modifier sa politique pour lire et écrire, puis télécharger quelques fichiers (disons des images) dans ce compartiment. Minio créera une URL unique pour chaque objet dans un bucket. Vous pouvez définir des politiques de lecture et d'écriture par compartiment ainsi que la date d'expiration sur l'URL de l'objet individuel.

Conclusion

C'est la base de la façon dont vous démarrez avec un magasin d'objets. Les objets eux-mêmes ne sont idéalement pas destinés à être modifiés, simplement lus ou ajoutés aux buckets. Vous pouvez l'intégrer dans votre application en suivant la documentation officielle.  Il prend en charge un large éventail de langages de programmation allant de Go, Python, JavaScript à .RAPPORTER.

Comment utiliser AutoKey pour automatiser les jeux Linux
AutoKey est un utilitaire d'automatisation de bureau pour Linux et X11, programmé en Python 3, GTK et Qt. En utilisant ses fonctionnalités de script e...
Comment afficher le compteur FPS dans les jeux Linux
Les jeux Linux ont reçu une impulsion majeure lorsque Valve a annoncé la prise en charge de Linux pour le client Steam et leurs jeux en 2012. Depuis l...
Comment télécharger et jouer à Civilization VI de Sid Meier sur Linux
Présentation du jeu Civilization 6 est une version moderne du concept classique introduit dans la série de jeux Age of Empires. L'idée était assez sim...