This article is written in Polish, for the Mikrus project.
MinIO to napisany w Go otwartoźródłowy serwer object storage kompatybilny z Amazon S3. Posiada bardzo duże możliwości konfiguracji, a jego instalacja jest dość prosta.
W tym poście, chciałbym opisać jego instalację na Mikrusie
Instalację przeprowadzimy na następującej konfiguracji:
Ta lista powinna pomóc ci uzupełnić pliki konfiguracyjne odpowiednimi portami
Stwórz dwa rekordy:
Typ | Nazwa | Adres |
CNAME | minio | srvXX.mikr.us |
CNAME | console.minio | srvXX.mikr.us |
Zamień srvXX na adres serwera twojego Mikrusa (np. srv08.mikr.us). Będziesz musiał ogarnąć też certyfikat SSL dla tych dwóch rekordów i umieścić go w /etc/ssl/minio/ (patrz. Konfiguracja reverse proxy);
MinIO jest dostępny jako pakiet Alpine, lecz użyjemy binarki, gdyż po pierwsze, jest to najnowsza wersja (a MinIO jest bardzo często aktualizowany), a po drugie, taki sposób instalacji zaleca producent.
W tym celu, wykonaj następujące polecenia jako root:
MinIO nie posiada własnego skryptu OpenRC, więc napisałem swój. Umieść go w /etc/init.d/minio:
#!/sbin/openrc-run
name='MinIO Server'
command=/usr/bin/minio
command_args="server --address --console-address "
command_user="minio:minio"
command_background=true
pidfile="/run/ .pid"
output_log="/var/log/ .log"
Nie zapomnij ustawić uprawnień wykonywania:
Ważne: Upewnij się, że twój Mikrusowy storage jest zamontowany jako /storage.
Stwórz plik /etc/conf.d/minio (jako root) i umieść w nim następującą zawartość:
# ścieżka do całego "środowiska" S3
MINIO_VOLUME="/storage/S3"
# nazwa użytkownika administratora
# hasło administratora
# porty TCP, zmień jeśli potrzebujesz
MINIO_ADDR=:9000 # główny port
MINIO_CONSOLE_ADDR=:9001 # MinIO Console
# ustaw tutaj adres za pomocą którego można dostać się do MinIO Console z zewnątrz
# nie powinieneś/aś musieć tego zmieniać
Zmień odpowiednie wartości zgodnie z ich opisem w komentarzach.
MinIO posiada swój własny webowy panel kontrolny zwany MinIO Console, który wystawiony jest przez port inny od głównego. Zatem, MinIO w zasadzie wystawia dwie osobne usługi HTTP na osobnych portach. Aby wystawić je do internetu, możemy użyć nginx.
Nie będę tutaj opisywał całej konfiguracji samego nginxa, a jedynie samą część configu która będzie ci potrzebna:
server {
12345 ssl;
.example.com;
minio
/etc/ssl/minio/public.crt;
/etc/ssl/minio/private.key;
0;
off;
off;
location / {
X-Real-IP $remote_addr;
X-Forwarded-For $proxy_add_x_forwarded_for;
X-Forwarded-Proto $scheme;
$http_host;
Host
300;
1.1;
"";
Connection off;
; }
}
server {
12345 ssl;
.minio.example.com;
console
/etc/ssl/minio/public.crt;
/etc/ssl/minio/private.key;
0;
off;
off;
location / {
X-Real-IP $remote_addr;
X-Forwarded-For $proxy_add_x_forwarded_for;
X-Forwarded-Proto $scheme;
$http_host;
Host
300;
1.1;
"";
Connection off;
; }
}
Zmień odpowiednie wartości zgodnie z ich opisem w komentarzach.
Nie zapomnij zrestartować nginxa:
Upewnij się, że konfiguracja jest prawidłowa i uruchom MinIO:
Jeśli nie pojawią się żadne błędy, wejdź na adres https://console.minio.twojadomena.pl:12345. Jeśli instalacja przebiegła bezbłędnie, powinieneś zobaczyć interfejs logowania do MinIO Console. Użyj wcześniej ustalonych poświadczeń (Konfiguracja serwera MinIO).
Działa?