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.
Voici les conditions préalables dont vous auriez besoin si vous voulez suivre:
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 / nologinMinio 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 / MINIODéplacez le binaire vers un endroit où les binaires sont généralement censés résider:
$ sudo mv minio / usr / local / binRendre le fichier binaire exécutable et donner à un utilisateur de Minio-utilisateur et regrouper sa propriété:
$ sudo chmod + x / 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 / minioAssurez-vous que Minio a un contrôle total sur ces répertoires:
$ sudo chown Minio-utilisateur: Minio-utilisateur / usr / local / share / 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 /"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 / minioEnfin, 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 /Recharger toutes les unités Systemd et permettre à Minio de démarrer sur le démarrage
$ sudo Systemctl Daemon-ReloadEnfin, 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 à jourInstallez ensuite les certificats, comme documenté par Minio Docs:
$ sudo Certbot Certonly --Standalone -d Minio.exemple.com --staple-oocsp -mIci, 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.CRTVous êtes maintenant prêt à utiliser le service:
$ sudo Service Minio StartSortir:
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.
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.