In diesem Tutorial werden wir die Verwendung von Minio auf Ubuntu 18 installieren und demonstrieren.04 LTS-Server. Dieser VPS hat eine statische IP und ich werde DNS-Einträge und TLS-Verbindungen einrichten, um diesen Objektspeicher so sicher und produktionsbereit wie möglich zu machen.
Voraussetzungen
Hier sind die Voraussetzungen, die Sie benötigen, wenn Sie mitmachen möchten:
- Ein VPS mit Ubuntu oder einer anderen Linux-Distribution mit einer statischen IP (IP_ADDRESS ist unser Platzhalter, ersetzen Sie es durch die tatsächliche IP-Adresse Ihres VPS)
- Ein vollständig qualifizierter Domänenname [FQDN]. Beispiel.com wird unser Platzhalter sein.
Installation und sonstige Einrichtung
Melden wir uns bei unserem VPS an und bereiten wir die Dinge vor, damit Minio richtig läuft.
1. DNS-Einrichtung
Gehen Sie zu dem Nameserver, auf dem die DNS-Einträge Ihrer Domain verwaltet werden. Diesen finden Sie höchstwahrscheinlich auf der Website Ihres Domain-Registrars. Fügen Sie einen A-Eintrag hinzu, der auf Ihren ausgewählten FQDN verweist (zum Beispiel minio.Beispiel.com ) an die IP_ADDRESS Ihres VPS.
2. Minio-Benutzer
Bevor wir Minio installieren, erstellen wir ein neues UNIX-Benutzerkonto, unter dem minio ausgeführt wird. Wir möchten es nicht als Root oder als normaler Benutzer ausführen, der möglicherweise über sudo-Zugriff oder andere darunter ausgeführte Anwendungen verfügt. Wir erstellen ein minio-Systemkonto namens minio-user:
$ sudo useradd --system minio-user --shell /sbin/nologin3. Minio-Download
Als nächstes laden wir die Minio-Binärdatei herunter (Sie ist in Go geschrieben, die sich in eine kleine, leichte Binärdatei kompiliert).
Holen Sie sich die Binärdatei
$ curl -O https://dl.minio.io/server/minio/release/linux-amd64/minioVerschieben Sie die Binärdatei an einen Speicherort, an dem sich die Binärdateien normalerweise befinden:
$ sudo mv minio /usr/local/binMachen Sie die Binärdatei ausführbar und geben Sie dem Benutzer und der Gruppe minio-user den Besitz:
$ sudo chmod +x /usr/local/bin/minio$ sudo chown minio-user:minio-user /usr/local/bin/minio
4. /etc Konfigurationsdateien, Startskripte und Speichergerät
Wir benötigen Minio, um mit einem Systemneustart zu starten und vom Betriebssystem als laufender Dienst erkannt zu werden. Andernfalls würde es zu Katastrophen kommen, wenn der OOM-Killer diesen Prozess sieht und entscheidet, dass er nicht nützlich genug ist. Außerdem benötigen wir ein Verzeichnis, in dem die eigentlichen Daten unseres Objektspeichers gespeichert werden:
$ sudo mkdir /usr/local/share/minio$ sudo mkdir /etc/minio
Stellen Sie sicher, dass minio die volle Kontrolle über diese Verzeichnisse hat:
$ sudo chown minio-user:minio-user /usr/local/share/minio$ sudo chown minio-user:minio-user /etc/minio
Innerhalb des Verzeichnisses /etc/default müssen wir eine Minio-Datei erstellen, um Umgebungsvariablen wie die Portnummer, die wir abhören, und das Verzeichnis anzugeben, in dem die Daten gespeichert werden sollen (das Volume). Wir haben zuvor das Volume erstellt, das das Verzeichnis /usr/local/share/minio war. Verwenden Sie also Ihren bevorzugten Texteditor, um eine Datei zu erstellen /etc/default/minio und fügen Sie den folgenden Inhalt hinzu:
MINIO_VOLUMES="/usr/local/share/minio/"MINIO_OPTS="-C /etc/minio --adresse minio.Beispiel.com:443"
Stellen Sie sicher, dass Sie den tatsächlichen designierten FDQN Ihres VPS anstelle der literalen Zeichenfolge minio schreiben.Beispiel.com oben. Portnummer 9000 wird normalerweise in der Dokumentation verwendet, aber wir werden die richtige TLS-Installation verwenden, die auf Port 443 lauscht. Da es sich um eine Portnummer kleiner als 1024 handelt, müssen wir dem Betriebssystem ausdrücklich mitteilen, dass es für minio in Ordnung ist, diese Ports abzuhören:
$ sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/minioAls letztes müssen wir das minio . konfigurieren Bedienung. Glücklicherweise ist das Skript, das dies tut, in ihrem GitHub-Repository verfügbar und wir werden es an der entsprechenden Stelle platzieren:
$ curl -O https://raw.githubusercontent.com/minio/minio-service/master/linux-systemd/minio.Bedienung
$ sudo mv minio.service /etc/systemd/system
Laden Sie alle Systemeinheiten neu und aktivieren Sie Minio, um beim Booten zu starten
$ sudo systemctl daemon-reload$ sudo systemctl aktivieren minio
Stellen Sie abschließend sicher, dass Ihre Firewall die Kommunikation über Port 443 zulässt.
LetsEncrypt TLS-Zertifikate mit Certbot
Wir müssen TLS-Zertifikate zwischen unserem Minio-Server und LetsEncrypt aushandeln. Certbot ist der Kunde, der dies für uns erledigt und auch die Zertifikatserneuerungen automatisiert. Lassen Sie uns zuerst Certbot installieren:
$ sudo apt-Update$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install certbot
Installieren Sie dann die Zertifikate, wie von Minio Docs dokumentiert:
$ sudo certbot certonly --standalone -d minio.Beispiel.com --staple-ocsp -m[email protected] --zustimmen-tos
Hier geben Sie Ihren FQDN für den Minio-Server nach dem Flag -d und Ihre E-Mail-Adresse nach dem Flag -m ein. Die E-Mail-Adresse ist wichtig, da LetsEncrypt Sie über ausstehende Verlängerungen benachrichtigen kann.
Ihre E-Mails sind jetzt unter /etc/letsencrypt/live/minio.Beispiel.com. Natürlich hängt der letzte Verzeichnisname von Ihrem gewählten FQDN ab. Kopieren Sie nun die Zertifikate in das /etc/minio-Verzeichnis von Minio und geben Sie ihm die Berechtigung, darauf zuzugreifen.
$ cp /etc/letsencrypt/live/minio.ranvirslog.com/fullchain.pem /etc/minio/certs/public.crt$ cp /etc/letsencrypt/live/minio.ranvirslog.com/privkey.pem /etc/minio/certs/private.Schlüssel
$ chown minio-user:minio-user /etc/minio/certs/public.crt
$ chown minio-user:minio-user /etc/minio/certs/private.Schlüssel
Jetzt können Sie den Dienst nutzen:
$ sudo service minio start$ sudo service minio status
Ausgabe:
- minio.Service - Minio
Aktiv: aktiv (läuft) seit Di 09.10.2018 11:54:41 PDT; vor 5s
Dokumente: https://docs.minio.io
Prozess: 15874 ExecStartPre=/bin/bash -c [ -n "$MINIO_VOLUMES" ] && echo "Variable
MINIO_VOLUMES nicht gesetzt in /etc/default/minio" (code=exited, status=0/SUCCESS)
Haupt-PID: 15877 (Minio)
Aufgaben: 13 (Limit: 4915)
CGruppe: /system.Scheibe/Minio.Bedienung
└─15877 /usr/local/bin/minio server -C /etc/minio --address minio.Beispiel.com:443 /usr/
local/share/minio/
09.10. 11:54:41 Hostname minio[15877]: Browserzugriff:
09.10. 11:54:41 Hostname minio[15877]: https://minio.Beispiel.com
09.10. 11:54:41 Hostname minio[15877]: Befehlszeilenzugriff: https://docs.minio.io/docs/
Minio-Client-Kurzanleitung
09. Okt. 11:54:41 hostname minio[15877]: $ mc config host myminio hinzufügen
https://minio.Beispiel.com
PAMH22LU3YJIFLU82H2E IKJ+qtc0Oqdn46R3dLfsjv5bCnm8UEeIBYpdG8qg
…
Die Ausgabe dieses Befehls enthält den Zugriffsschlüssel (PAMH22LU3YJIFLU82H2E) und geheimer Schlüssel (IKJ+qtc0Oqdn46R3dLfsjv5bCnm8UEeIBYpdG8qg) für minio wie oben in Fettdruck dargestellt. Deine Schlüssel wären anders, also kopiere nicht die hier genannten.
Verwenden von Minio
Öffnen Sie Ihren Browser und besuchen Sie https://minio.Beispiel.com (stellen Sie sicher, dass Sie den von Ihnen zugewiesenen FQDN verwenden) und verwenden Sie den Zugriff und den geheimen Schlüssel, die in Ihrem service minio status-Befehl aufgeführt sind, um sich zum ersten Mal anzumelden.
Und Sie werden von der Minio-Benutzeroberfläche begrüßt.
Hier können Sie das Pluszeichen in der unteren linken Ecke verwenden, um Dateien hochzuladen oder einen neuen Bucket zu erstellen. Ich habe einen neuen Bucket namens mybucket erstellt.
Sie können die Richtlinie zum Lesen und Schreiben bearbeiten und dann einige Dateien (z. B. Bilder) in diesen Bucket hochladen. Minio erstellt für jedes Objekt in einem Bucket eine eindeutige URL. Sie können Richtlinien für das Lesen und Schreiben pro Bucket sowie das Ablaufdatum für die URL des einzelnen Objekts festlegen.
Fazit
Das sind die Grundlagen für die ersten Schritte mit einem Objektspeicher. Die Objekte selbst sind idealerweise nicht dazu gedacht, geändert zu werden, sondern nur aus den Buckets gelesen oder hinzugefügt zu werden. Sie können dies in Ihre Anwendung integrieren, indem Sie der offiziellen Dokumentation folgen. Es unterstützt eine Vielzahl von Programmiersprachen von Go, Python, JavaScript bis hin zu .NETZ.