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 :
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 :
Clique sur le bouton Créer un seau. Tu devrais voir la page suivante :
Indique ton nom de seau, puis clique sur le bouton Créer un seau. Tu devrais voir la page suivante :
À 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 :
Clique sur le bouton Logs. Tu devrais voir les journaux du serveur Minio sur la page suivante :
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.