Installez Minio sur Ubuntu Top 10.Top 10 LTS

Installez Minio sur Ubuntu Top 10.Top 10 LTS
Minio est une solution auto-hébergée pour créer votre propre stockage d'objets. C'est une alternative pour AWS S3, si vous avez déjà utilisé ce service. Le logiciel Minio lui-même est expédié en 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 packages. Il y a, bien sûr, des images Docker si vous souhaitez les utiliser pour exécuter Minio sur votre VPS.

Dans ce tutoriel, nous installerons et démontrerons l'utilisation de Minio sur Ubuntu 18.04 serveur LTS. Ce VPS a une IP statique et je configurerai les enregistrements DNS et les connexions TLS pour rendre ce magasin d'objets aussi sécurisé et de production que possible.

Conditions préalables

Voici les conditions préalables dont vous auriez besoin si vous voulez 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 entièrement qualifié [FQDN]. exemple.com sera notre espace réservé.

Installation et configuration diverses

Connectez-vous à nos VP et préparons les choses pour que Minio fonctionne correctement.

Configuration DNS

Accédez au serveur de noms où les enregistrements DNS de votre domaine sont maintenus, ce qui se trouve très probablement sur le site Web de votre registraire de domaine. Ajoutez un enregistrement A, pointant votre FQDN choisi (par exemple Minio.exemple.com) à votre ip_address VPS.

Minio utilisateur

Avant d'installer MINIO, créons un nouveau compte d'utilisateur Unix sous qui Minio fonctionnera. 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 en cours. Nous créons un compte système Minio, nommé Minio-User:

$ sudo userAdd - System Minio-user --shell / sbin / nologin

Minio Download

Ensuite, nous téléchargeons le mini-binaire (il est écrit dans Go qui se compile dans 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 endroit où les binaires sont généralement censés résider:

$ sudo mv minio / usr / local / bin

Rendre le fichier binaire exécutable et donner à un utilisateur de Minio-utilisateur et regrouper sa propriété:

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

/ etc des fichiers de configuration, des scripts de démarrage et du 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 de course par le système d'exploitation. Ne pas le faire entraînerait des catastrophes comme lorsque le Killer Oom voit ce processus et décide que ce 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-utilisateur: Minio-utilisateur / usr / local / share / minio
$ sudo chown Minio-utilisateur: Minio-utilisateur / etc / minio

À l'intérieur du répertoire / etc / par défaut, nous devons créer un fichier MiniO pour spécifier des variables d'environnement comme 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. Alors utilisez votre éditeur de texte préféré pour créer un fichier / etc / par défaut / minio et ajouter le contenu suivant à l'intérieur:

Minio_volumes = "/ usr / local / share / minio /"
Minio_opts = "- C / etc / minio - Address Minio.exemple.com: 443 "

Assurez-vous d'écrire FDQN désigné 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 une installation TLS appropriée à l'écoute du port 443. Puisqu'il s'agit d'un numéro de port inférieur à 1024, nous devons dire expressément au système d'exploitation qu'il est normal pour Minio d'écouter sur ces ports:

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

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

$ curl -o https: // brut.githubusercontent.com / minio / minio-service / maître / linux-systemd /
minio.service
$ sudo MV Minio.service / etc / systemd / système

Recharger toutes les unités Systemd et permettre à Minio de démarrer sur le démarrage

$ sudo Systemctl Daemon-Reload
$ sudo systemctl activer minio

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

LETSENCRYPT TLS CERTIFICATIONS Utilisation de CERTBOT

Nous devons négocier des certificats TLS entre notre serveur Minio et LetScrypt. CERTBOT est le client qui fait cela pour nous et automatise également les renouvellements de certificat. Installons d'abord Certbot:

$ sudo apt mise à jour
$ sudo apt-get install logiciel-properties-commun
$ sudo add-att-repository ppa: Certbot / Certbot
$ sudo apt-get updat
$ sudo apt-get install certbot

Installez ensuite les certificats, comme documenté par Minio Docs:

$ sudo Certbot Certonly --Standalone -d Minio.exemple.com --staple-oocsp -m
nom d'utilisateur @ e-mail.com - aigre-tos

Ici, vous entrez votre FQDN pour le serveur Minio après l'indicateur -D et votre adresse e-mail après -M Flag. L'adresse e-mail est importante car il permet à Laiscrypt de vous informer des renouvellements en attente.

Vos e-mails seront désormais présents à / etc / letSencrypt / Live / Minio.exemple.com. Bien sûr, le dernier nom de répertoire dépendrait de votre FQDN choisi. Copiez maintenant les certificats dans le répertoire Minio's / etc / Minio et donnez-lui la permission d'y accéder.

$ cp / etc / lesencrypt / live / minio.ranvirslog.com / fullchain.PEM / ETC / MINIO / CERTS / PUBLIC.CRT
$ cp / etc / lesencrypt / live / minio.ranvirslog.com / privkey.PEM / ETC / MINIO / CERTS / PRIVÉ.clé
$ Chown Minio-utilisateur: Minio-utilisateur / etc / minio / certificat / public.CRT
$ Chown Minio-utilisateur: Minio-utilisateur / etc / minio / certifications / privé.clé

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

$ sudo Service Minio Start
$ Sudo Service Minio Status

Sortir:

  • minio.Service - Minio
Chargé: chargé (/ etc / systemd / system / minio.service; désactivé; Vendor Preset: Activé)
Actif: actif (en cours d'exécution) depuis TUe 2018-10-09 11:54:41 PDT; Il y a 5
Docs: https: // docs.minio.Io
Processus: 15874 execstartpre = / bin / bash -c [-n "$ minio_volumes"] && echo "variable
Minio_volumes non définis dans / etc / default / minio "(code = Overti, status = 0 / succès)
PID principal: 15877 (Minio)
Tâches: 13 (Limite: 4915)
Cgroup: / système.Slice / Minio.service
└fiques15877 / USR / LOCAL / BIN / MINIO Server -C / etc / Minio - Address Minio.exemple.com: 443 / usr /
local / share / minio /
09 oct
09 octobre 11:54:41 MINIO HOSTNAM.exemple.com
09 oct.minio.io / docs /
minio-client-guide
09 oct
https: // minio.exemple.com
Pamh22lu3yjiflu82h2e ikj + qtc0oqdn46r3dlfsjv5bcnm8ueibypdg8qg

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

Utilisation de Minio

Ouvrez votre navigateur et visitez https: // minio.exemple.com (Assurez-vous d'utiliser le FQDN que vous avez attribué) et utilisez la clé d'accès et secrète répertoriée dans votre commande de service Minio Status pour vous connecter pour la première fois.

Et vous serez accueilli par la mini-ui.

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

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

Conclusion

C'est les bases de la façon dont vous commencez avec un magasin d'objets. Les objets eux-mêmes ne sont idéalement pas destinés à être modifiés, il suffit de lire ou d'ajouter aux seaux. 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 à .FILET.