Comment installer le serveur de stockage d’objets MinIO sur Debian 11

Minio est un serveur de stockage d’objets populaire, open-source, auto-hébergé et compatible avec Amazon S3, écrit en Go. C’est une alternative très utile à AWS S3 si tu as besoin de plus de contrôle sur ton serveur de stockage d’objets. Il permet de stocker des photos, des vidéos, des fichiers journaux, des sauvegardes et des images de conteneurs/VM. Il fournit un client en ligne de commande, une interface de navigateur et prend également en charge AMQP. Tu peux utiliser Minio dans un déploiement à grande échelle pour la réplication continue des données.

Dans cet article, je vais te montrer comment installer le serveur Minio sur Debian 11.

Conditions préalables

  • Un serveur fonctionnant sous Debian 11.
  • Un mot de passe root est configuré sur le serveur.

Installer le serveur Minio

Tout d’abord, télécharge la dernière version du binaire Minio à l’aide de la commande suivante :

wget https://dl.min.io/server/minio/release/linux-amd64/minio

Ensuite, donne la permission d’exécution et déplace le binaire Minio dans le chemin du système :

chmod +x minio
mv minio /usr/local/bin/

Ensuite, crée un utilisateur dédié à Minio à l’aide de la commande suivante :

useradd -r minio -s /sbin/nologin

Ensuite, change la propriété du binaire Minio en utilisateur Minio :

chown minio:minio /usr/local/bin/minio

Ensuite, vérifie la version installée de Minio avec la commande suivante :

minio --version

Tu obtiendras le résultat suivant :

minio version RELEASE.2022-02-26T02-54-46Z

Créer une partition pour le stockage Minio

Ensuite, tu devras créer une partition GPT sur un disque séparé. Tout d’abord, liste tous les disques durs connectés à l’aide de la commande suivante :

fdisk -l

Tu devrais voir tous les disques durs connectés dans la sortie suivante :

Disk /dev/sda: 50 GiB, 53687091200 bytes, 104857600 sectors
Disk model: QEMU HARDDISK   
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x7d36ef95

Device     Boot Start       End   Sectors Size Id Type
/dev/sda1        2048 104855552 104853505  50G 83 Linux


Disk /dev/sdb: 50 GiB, 53687091200 bytes, 104857600 sectors
Disk model: Volume          
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Ensuite, crée une partition GPT sur le disque /dev/sdb avec la commande suivante :

parted -s -a optimal -- /dev/sdb mklabel gpt
parted -s -a optimal -- /dev/sdb mkpart primary 0% 100%
parted -s -- /dev/sdb align-check optimal 1

Ensuite, formate la partition à l’aide de la commande suivante :

mkfs.ext4 /dev/sdb1

Tu obtiendras la sortie suivante :

mke2fs 1.46.2 (28-Feb-2021)
Discarding device blocks: done                            
Creating filesystem with 13106688 4k blocks and 3276800 inodes
Filesystem UUID: bd18a11d-a9d9-44a2-a381-f30ba0798661
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624, 11239424

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (65536 blocks): done
Writing superblocks and filesystem accounting information: done   

Ensuite, crée un point de montage pour le disque Minio.

mkdir /mnt/minio

Ensuite, ajoute l’entrée dans le fichier /etc/fstab pour monter la partition sur le point de montage :

nano /etc/fstab

Ajoute la ligne suivante :

/dev/sdb1 /mnt/minio ext4 rw 0 0

Enregistre et ferme le fichier puis monte la partition à l’aide de la commande suivante :

mount -a

Ensuite, vérifie le disque monté à l’aide de la commande suivante :

df -h

Tu devrais voir la sortie suivante :

Filesystem      Size  Used Avail Use% Mounted on
udev            976M     0  976M   0% /dev
tmpfs           199M  388K  198M   1% /run
/dev/sda1        50G  1.6G   46G   4% /
tmpfs           992M     0  992M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           199M     0  199M   0% /run/user/0
/dev/sdb1        49G   24K   47G   1% /mnt/minio

Ensuite, change la propriété du montage Minio en minio :

chown minio:minio /mnt/minio

Configurer Minio

Ensuite, crée un répertoire de configuration Minio à l’aide de la commande suivante :

mkdir /etc/minio

Ensuite, change la propriété du répertoire de configuration Minio :

chown minio:minio /etc/minio

Ensuite, crée un fichier de configuration Minio :

nano /etc/default/minio

Ajoute les lignes suivantes :

MINIO_ACCESS_KEY="minioaccesskey"
MINIO_VOLUMES="/mnt/minio"
MINIO_OPTS="-C /etc/minio --address 0.0.0.0:9000"
MINIO_SECRET_KEY="miniosecretkey"

Sauvegarde et ferme le champ puis télécharge le fichier de service Minio avec la commande suivante :

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

Ensuite, modifie le fichier de service Minio avec la commande suivante :

nano minio.service

Modifie le fichier comme indiqué ci-dessous :

[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio

[Service]
WorkingDirectory=/usr/local/

User=minio
Group=minio
ProtectProc=invisible

EnvironmentFile=/etc/default/minio
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES

# Let systemd restart this service always
Restart=always

# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=1048576

# Specifies the maximum number of threads this process can create
TasksMax=infinity

# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no

[Install]
WantedBy=multi-user.target

Sauvegarde et ferme le fichier puis copie le fichier du service Minio dans /etc/systemd/system/.

mv minio.service /etc/systemd/system/

Ensuite, recharge le démon systemd pour appliquer les modifications :

systemctl daemon-reload

Ensuite, démarre et active le service Minio avec la commande suivante :

systemctl start minio
systemctl enable minio

Ensuite, vérifie le service Minio avec la commande suivante :

systemctl status minio

Tu devrais voir la sortie suivante :

? minio.service - MinIO
     Loaded: loaded (/etc/systemd/system/minio.service; disabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-02-28 02:18:31 UTC; 4s ago
       Docs: https://docs.min.io
    Process: 861 ExecStartPre=/bin/bash -c if [ -z "${MINIO_VOLUMES}" ]; then echo "Variable MINIO_VOLUMES not set in /etc/default/minio"; ex>
   Main PID: 862 (minio)
      Tasks: 7
     Memory: 55.2M
        CPU: 759ms
     CGroup: /system.slice/minio.service
             ??862 /usr/local/bin/minio server -C /etc/minio --address 0.0.0.0:9000 /mnt/minio

Feb 28 02:18:31 debian11 systemd[1]: Starting MinIO...
Feb 28 02:18:31 debian11 systemd[1]: Started MinIO.
Feb 28 02:18:32 debian11 minio[862]: WARNING: MINIO_ACCESS_KEY and MINIO_SECRET_KEY are deprecated.
Feb 28 02:18:32 debian11 minio[862]:          Please use MINIO_ROOT_USER and MINIO_ROOT_PASSWORD
Feb 28 02:18:32 debian11 minio[862]: API: http://0.0.0.0:9000
Feb 28 02:18:32 debian11 minio[862]: Console: http://209.208.97.78:42459 http://127.0.0.1:42459
Feb 28 02:18:32 debian11 minio[862]: Documentation: https://docs.min.io
Feb 28 02:18:32 debian11 minio[862]: WARNING: Console endpoint is listening on a dynamic port (42459), please use --console-address ":PORT" t>

Accède au tableau de bord Minio

Maintenant, ouvre ton navigateur Web et accède à l’interface Web de Minio en utilisant l’URL http://your-server-ip:9000. Tu seras redirigé vers la page de connexion de Minio :

Connexion MinIO

Ensuite, utilise la clé d’accès et la clé privée du fichier de configuration comme nom d’utilisateur et mot de passe puis clique sur le bouton Connexion. Tu devrais voir le tableau de bord Minio sur la page suivante :

Tableau de bord MinIO

Clique sur le bouton Créer un seau. Tu devrais voir la page suivante :

Caractéristiques

Indique ton nom de seau, puis clique sur le bouton Créer un seau. Tu devrais voir la page suivante :

Sauvegarde MinIO

À partir d’ici, tu peux charger et télécharger tes fichiers depuis le navigateur Web.

Clique sur le bouton Monitoring => Metrics. Tu devrais voir les métriques de ton seau sur la page suivante :

Métriques MinIO

Clique sur le bouton Logs. Tu devrais voir les journaux du serveur Minio sur la page suivante :

MinIO Logs

Conclusion

Félicitations ! Tu as réussi à installer le serveur de stockage Minio sur Debian 11. Maintenant, tu n’as plus besoin de compter sur le stockage AWS S3. Tu peux créer ton propre serveur de stockage compatible S3 pour ton organisation. N’hésite pas à me demander si tu as des questions.

Vous aimerez aussi...