Comment configurer un serveur de stockage d’objets en utilisant Minio sur Ubuntu 16.04

introduction

Des solutions de sauvegarde basées sur le cloud aux réseaux de diffusion de contenu (CDN) à haute disponibilité, le stockage d’objets est devenu une partie intégrante du paysage technologique moderne. De plus, avec son faible encombrement, son interface simple et sa compatibilité avec de multiples services de stockage dans le cloud, le serveur de stockage d’objets Minio est très performant.

Minio est un serveur de stockage d’objets open-source qui stocke des données non structurées telles que des photos, des vidéos, des images de machines virtuelles, des conteneurs et des fichiers journaux sous forme d’objets. En mode distribué, Minio fournit un serveur de stockage à objet unique qui regroupe plusieurs lecteurs répartis sur de nombreux serveurs.

Minio est écrit en Go, est fourni avec un client en ligne de commande, une interface de navigateur et prend en charge un service de mise en file d’attente simple pour https://www.digitalocean.com/community/tutorials/an-advanced-message-queuing-protocol-amqp-walkthrough. [Protocole AMQP (Advanced Message Queuing Protocol)], Elasticsearch, https: / /www.digitalocean.com/community/tutorials/how-to-install-and-use-redis[Redis], https://www.digitalocean.com/community/tutorials/how-to-install-and-configure- nats-on-ubuntu-16-04 [NATS], et Postgres cibles.

Dans ce tutoriel, vous allez:

  • Installez le serveur Minio sur votre serveur DigitalOcean et configurez-le en tant que service systemd.

  • Configurez un certificat SSL / TLS avec Let’s Encrypt pour sécuriser la communication entre le serveur et le client.

  • Accédez à l’interface du navigateur de Minio via HTTPS pour utiliser et administrer le serveur.

Conditions préalables

Pour compléter ce tutoriel, vous aurez besoin de:

Étape 1 - Installation et configuration du serveur Minio

Vous pouvez installer le serveur Minio en compilant le code source ou via un fichier binaire. Au cours de cette étape, nous allons installer le serveur de la manière la plus simple, via le fichier binaire, puis tout configurer par la suite.

Commencez par vous connecter à votre serveur:

ssh sammy@

Si vous n’avez pas mis à jour la base de données de paquets récemment, mettez-la à jour maintenant:

sudo apt-get update

Ensuite, téléchargez le fichier binaire du serveur Minio:

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

Un fichier nommé + minio + sera téléchargé dans votre répertoire de travail. Rendez-le exécutable:

sudo chmod +x minio

Maintenant, déplacez le fichier dans le répertoire + / usr / local / bin + où le script de démarrage systemd de Minio s’attend à le trouver:

sudo mv minio /usr/local/bin

Pour des raisons de sécurité, nous ne souhaitons pas exécuter le serveur Minio en tant que * racine *. De plus, étant donné que le script systemd que nous allons utiliser à l’étape 2 recherche un compte utilisateur et un groupe appelé * minio-user *, créons-les maintenant.

sudo useradd -r minio-user -s /sbin/nologin

Changez la propriété du binaire en * minio-user *:

sudo chown minio-user:minio-user /usr/local/bin/minio

Ensuite, nous devons créer un répertoire dans lequel Minio stockera les fichiers. Ce sera l’emplacement de stockage pour les buckets que vous créerez à l’étape 5.

sudo mkdir /usr/local/share/

Donnez la propriété de ce répertoire à * minio-user *:

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

Le répertoire + / etc + est l’emplacement le plus courant pour les fichiers de configuration du serveur, nous allons donc créer un emplacement pour Minio.

sudo mkdir /etc/

Attribuez également la propriété de ce répertoire à * minio-user *:

sudo chown minio-user:minio-user /etc/minio

Utilisez nano ou votre éditeur de texte favori pour créer le fichier d’environnement nécessaire à la modification de la configuration par défaut:

sudo nano /etc/default/

Et ajoutez les variables suivantes:

/ etc / default / minio

MINIO_VOLUMES=""
MINIO_OPTS="-C  --address :"
  • * MINIO_VOLUMES *: pointe vers le répertoire de stockage que vous avez créé précédemment.

  • * MINIO_OPTS *: Modifie le comportement du serveur. L’indicateur * -C * indique à Minio le répertoire de configuration qu’il doit utiliser, tandis que l’indicateur * -address * indique à Minio l’adresse IP et le port auxquels se lier. Si l’adresse IP n’est pas spécifiée, Minio établira une liaison avec toutes les adresses configurées sur le serveur, y compris localhost et toutes les adresses IP liées à Docker. Il est donc préférable de spécifier explicitement l’adresse IP dans ce fichier. Le port par défaut est * 9000 *, mais vous pouvez en choisir un autre.

Enfin, sauvegardez et fermez le fichier d’environnement une fois les modifications apportées.

Minio étant maintenant installé, nous allons maintenant configurer le serveur pour qu’il s’exécute en tant que service système.

Étape 2 - Installation du script de démarrage de Minio Systemd

Dans cette étape, nous allons configurer le serveur Minio pour qu’il soit géré en tant que service systemd. Tout d’abord, téléchargez le fichier descripteur de service Minio à l’aide de la commande suivante:

curl -O https://raw.githubusercontent.com/minio/minio-service/master/linux-systemd/minio.service

Une fois le téléchargement terminé, un fichier nommé + minio.service + devrait se trouver dans votre répertoire de travail.

Pour auditer le contenu de + minio.service + avant de l’appliquer, ouvrez-le dans un éditeur de texte pour en afficher le contenu:

nano minio.service

Une fois que vous êtes à l’aise avec le contenu du script, fermez votre éditeur de texte.

Systemd nécessite que les fichiers d’unité soient stockés dans le répertoire de configuration de systemd. Déplacez donc + minio.service +:

sudo mv minio.service /etc/systemd/system

Ensuite, exécutez la commande suivante pour recharger toutes les unités systemd:

sudo systemctl daemon-reload

Enfin, activez le démarrage de Minio au démarrage:

sudo systemctl enable minio

Maintenant que le script systemd est installé et configuré, démarrons le serveur.

Étape 3 - Démarrer le serveur Minio

Au cours de cette étape, vous allez démarrer le serveur et modifier le pare-feu pour permettre l’accès via l’interface du navigateur.

Tout d’abord, démarrez le serveur Minio:

sudo systemctl start minio

Vous pouvez vérifier l’état de Minio, son adresse IP, son utilisation de la mémoire, etc. à l’aide de la commande suivante:

sudo systemctl status minio

Vous devriez obtenir une sortie comme celle-ci:

Outputminio.service - Minio
  Loaded: loaded (/etc/systemd/system/minio.service; enabled; vendor preset: enabled)
  Active: active (running) since Fri 2017-04-07 00:26:10 UTC; 11min ago
    Docs: https://docs.minio.io
 Process: 25069 ExecStartPre=/bin/bash -c [ -n "${MINIO_VOLUMES}" ] || echo "Variable MINIO_VOLUMES not set in /etc/default/minio" (code=exit
Main PID: 25073 (minio)
   Tasks: 6
  Memory: 20.7M
     CPU: 544ms
  CGroup: /system.slice/minio.service
          └─25073 /usr/local/bin/minio server -C /etc/minio --address :

Apr 07 00:26:11  minio[25073]: Browser Access:
Apr 07 00:26:11  minio[25073]:    http://:

Ensuite, vous devez activer l’accès via le pare-feu au serveur Minio sur le port configuré. Dans ce tutoriel, c’est le port ++.

Alors, ajoutez d’abord la règle:

sudo ufw allow

Ensuite, redémarrez le pare-feu:

sudo systemctl restart ufw

Minio est maintenant prêt à accepter le trafic, mais avant de vous connecter au serveur, sécurisons la communication en installant un certificat SSL / TLS.

Étape 4 - Sécurisation de l’accès à Minio Server à l’aide du certificat SSL / TLS de Let’s Encrypt

Dans cette étape, nous allons utiliser le client de génération de certificat basé sur la console, Concert, pour créer un certificat SSL / TLS à l’aide de la source ouverte https: // letsencrypt. org / [Encryptons] l’autorité de certification. Bien qu’il existe d’autres moyens de générer des certificats Let’s Encrypt, Concert est écrit à la fois par les développeurs de Minio et fait partie du site officiel https://docs.minio.io/docs/generate-let-s-encypt-certificate-using-concert-for. -minio [instructions d’installation].

Commencez par télécharger Concert avec la commande:

go get -u github.com/minio/concert

Une fois terminé, un fichier nommé + concert + devrait être dans le répertoire + bin + de votre GOPATH.

Ensuite, nous allons générer le certificat.

Exécutez la commande suivante en utilisant l’indicateur + - dirs + pour indiquer à Concert le répertoire de sortie, l’adresse e-mail et le nom de domaine que vous souhaitez utiliser:

sudo /bin/concert gen --dir

La sortie ressemblera à:

Output2017/04/09 01:21:08 Generated certificates for  under  will expire in 89 days.

Et Concert aura généré un fichier + private.key et un fichier` + public.cert`, que vous pourrez vérifier en exécutant + ls + dans le répertoire que vous avez spécifié.

Ensuite, nous allons copier ces deux fichiers dans le répertoire + certs + sous le dossier de configuration du serveur de Minio, qui est + / etc / minio + pour ce tutoriel.

sudo cp /private.key /certs/
sudo cp /public.crt /certs/

Maintenant, changez la propriété des fichiers en * minio-user *:

sudo chown minio-user:minio-user /certs/private.key
sudo chown minio-user:minio-user /certs/public.crt

Redémarrez le serveur Minio pour qu’il prenne connaissance du certificat et commence à utiliser HTTPS:

sudo systemctl restart minio

Étant donné que le certificat Let’s Encrypt généré n’est valable que pendant 90 jours et qu’il serait inefficace de le renouveler manuellement à plusieurs reprises, démarrez Concert en mode serveur pour configurer un système permettant de renouveler automatiquement le certificat:

sudo concert server --dir  @

Grâce à cela, la connexion de Minio est maintenant sécurisée et le certificat SSL / TLS sera automatiquement renouvelé. Dans l’étape suivante, vous vous connecterez à Minio via le navigateur pour utiliser et administrer le serveur.

Étape 5 - Connexion sécurisée à l’interface Web de Minio à l’aide de HTTPS

Au cours de cette étape, vous vous connecterez en toute sécurité à l’interface Web de Minio via HTTPS. Vous créerez ensuite des compartiments et y téléchargerez des objets.

Accédez à l’interface Web en pointant votre navigateur sur + https: //: +.

Ensuite, vous devrez trouver vos identifiants de connexion. Minio a écrit son fichier de configuration dans le répertoire + / etc / minio + lorsque vous avez démarré le serveur à l’étape 3. Ce fichier de configuration, + config.json +, contient les valeurs * accessKey * et * secretKey * dont vous aurez besoin pour accéder au serveur maintenant. Veillez à copier et à conserver les deux clés dans un endroit sûr et à portée de main pour l’avenir.

/etc/minio/config.json

{
   "version": "19",
   "credential": {
       "accessKey": "",
       "secretKey": ""
   },
   "region": "us-east-1",
   ...
}

Maintenant, connectez-vous à l’interface principale en entrant vos informations d’identification et en cliquant sur le bouton rond avec la flèche directement sous les champs de saisie.

De là, cliquez sur le bouton rouge clair * + * en bas à droite de l’interface principale pour afficher deux boutons jaunes supplémentaires.

image: http: //assets.digitalocean.com/articles/how-to-set-up-an-object-storage-server-using-minio/61120-ssb.png [l’interface principale de Minio]

Cliquez sur le bouton jaune du milieu et entrez le nom de votre nouveau compartiment dans l’invite, en appuyant sur la touche + ENTRÉE + pour enregistrer votre réponse. Votre nouveau seau est maintenant prêt à être utilisé pour le stockage!

Lorsque vous souhaitez ajouter des objets dans votre compartiment, cliquez sur le même bouton rouge clair que précédemment, puis cliquez sur le bouton jaune top pour ouvrir une invite de téléchargement de fichier.

À ce stade, vous avez travaillé sur l’ensemble de l’interface Web de base, mais au-delà de la création de compartiments et du téléchargement d’objets, vous pouvez également générer de nouvelles informations d’identification, définir des dates d’expiration sur les liens partageables des objets et les supprimer complètement.

Conclusion

Vous disposez maintenant de votre propre serveur de stockage d’objets utilisant Minio auquel vous pouvez vous connecter en toute sécurité depuis l’interface Web à l’aide d’un certificat Let’s Encrypt SSL / TLS. Vous pouvez éventuellement consulter les clients de bureau Minio pour FreeBSD, Linux, Mac et Windows comme autre moyen d’utiliser et d’administrer le stockage de vos objets. serveur.

De plus, si vous souhaitez augmenter la capacité de stockage de votre installation Minio au-delà de la taille du disque de votre serveur, vous pouvez utiliser https://www.digitalocean.com/community/tutorials/how-to-use-block-storage-on-digitalocean. [Service de stockage en bloc de DigitalOcean] pour attacher un volume à votre serveur, ce qui étend la capacité de stockage jusqu’à 80 To pour une fraction du coût de la création d’un Droplet de taille égale.

De plus amples informations sur Minio sont disponibles sur le site Web de documentation de project.

Related