So richten Sie einen Objektspeicherserver mit Minio unter Ubuntu 16.04 ein

Einführung

Von cloudbasierten Backup-Lösungen bis hin zu hochverfügbaren Content Delivery Networks (CDNs) ist die Objektspeicherung zu einem integralen Bestandteil der modernen Technologielandschaft geworden. Und der Objektspeicherserver Minio bietet mit seinem geringen Platzbedarf, seiner übersichtlichen Benutzeroberfläche und seiner Kompatibilität mit mehreren Cloud-Speicherdiensten eine Menge Leistung.

Minio ist ein Open-Source-Objektspeicherserver, auf dem unstrukturierte Daten wie Fotos, Videos, Images von virtuellen Maschinen, Container und Protokolldateien als Objekte gespeichert werden. Im verteilten Modus stellt Minio einen einzelnen Objektspeicherserver bereit, der mehrere Laufwerke bündelt, die auf mehrere Server verteilt sind.

Minio ist in Go geschrieben, wird mit einem Befehlszeilen-Client und einer Browser-Oberfläche geliefert und unterstützt den einfachen Warteschlangendienst für https://www.digitalocean.com/community/tutorials/an-advanced-message-queuing-protocol-amqp-walkthrough [Advanced Message Queuing Protocol (AMQP)], https://www.digitalocean.com/community/tutorials/installations- und konfigurationsanleitung-elasticsearch-on-ubuntu-16-04[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] und Postgres Ziele.

In diesem Tutorial werden Sie:

  • Installieren Sie den Minio-Server auf Ihrem DigitalOcean-Server und konfigurieren Sie ihn als Systemdienst.

  • Richten Sie ein SSL / TLS-Zertifikat mit Let’s Encrypt ein, um die Kommunikation zwischen dem Server und dem Client zu sichern.

  • Greifen Sie über HTTPS auf die Browser-Oberfläche von Minio zu, um den Server zu verwenden und zu verwalten.

Voraussetzungen

Um dieses Tutorial abzuschließen, benötigen Sie:

Schritt 1 - Installieren und Konfigurieren des Minio-Servers

Sie können den Minio-Server durch Kompilieren des Quellcodes oder über eine Binärdatei installieren. In diesem Schritt installieren wir den Server auf einfachste Weise - über die Binärdatei - und konfigurieren anschließend alles.

Melden Sie sich zuerst bei Ihrem Server an:

ssh sammy@

Wenn Sie die Paketdatenbank in letzter Zeit nicht aktualisiert haben, aktualisieren Sie sie jetzt:

sudo apt-get update

Laden Sie als Nächstes die Binärdatei des Minio-Servers herunter:

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

Eine Datei mit dem Namen "+ minio +" wird in Ihr Arbeitsverzeichnis heruntergeladen. Mach es ausführbar:

sudo chmod +x minio

Verschieben Sie die Datei nun in das Verzeichnis "+ / usr / local / bin +", in dem Minios systemd-Startskript sie erwartet:

sudo mv minio /usr/local/bin

Aus Sicherheitsgründen möchten wir den Minio-Server nicht als * root * ausführen. Da das in Schritt 2 verwendete systemd-Skript nach einem Benutzerkonto und einer Gruppe mit dem Namen * minio-user * sucht, erstellen wir sie jetzt.

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

Ändern Sie den Besitzer der Binärdatei in * minio-user *:

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

Als nächstes müssen wir ein Verzeichnis erstellen, in dem Minio Dateien speichert. Dies ist der Speicherort für die Eimer, die Sie in Schritt 5 erstellen.

sudo mkdir /usr/local/share/

Geben Sie * minio-user * den Besitz dieses Verzeichnisses:

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

Das Verzeichnis "+ / etc +" ist der häufigste Speicherort für Serverkonfigurationsdateien. Daher erstellen wir dort einen Speicherort für Minio.

sudo mkdir /etc/

Gib auch * minio-user * den Besitz dieses Verzeichnisses:

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

Verwenden Sie nano oder Ihren bevorzugten Texteditor, um die Umgebungsdatei zu erstellen, die zum Ändern der Standardkonfiguration erforderlich ist:

sudo nano /etc/default/

Fügen Sie die folgenden Variablen hinzu:

/ etc / default / minio

MINIO_VOLUMES=""
MINIO_OPTS="-C  --address :"
  • * MINIO_VOLUMES *: Verweist auf das zuvor erstellte Speicherverzeichnis.

  • * MINIO_OPTS *: Ändert das Verhalten des Servers. Das * -C * -Flag verweist Minio auf das zu verwendende Konfigurationsverzeichnis, während das * –address * -Flag Minio die IP-Adresse und den Port mitteilt, an den die Bindung erfolgen soll. Wenn die IP-Adresse nicht angegeben wird, bindet Minio an jede auf dem Server konfigurierte Adresse, einschließlich localhost und an alle Docker-bezogenen IP-Adressen. Geben Sie die IP-Adresse daher am besten explizit in dieser Datei an. Der Standardport ist * 9000 *, Sie können jedoch einen anderen wählen.

Speichern und schließen Sie die Umgebungsdatei, wenn Sie alle Änderungen vorgenommen haben.

Minio ist jetzt installiert. Als Nächstes konfigurieren wir den Server so, dass er als Systemdienst ausgeführt wird.

Schritt 2 - Installieren des Minio Systemd-Startskripts

In diesem Schritt konfigurieren wir den Minio-Server so, dass er als systemd-Dienst verwaltet wird. Laden Sie zunächst die Minio-Servicedeskriptordatei mit dem folgenden Befehl herunter:

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

Nach Abschluss des Downloads sollte sich eine Datei mit dem Namen "+ minio.service +" in Ihrem Arbeitsverzeichnis befinden.

Um den Inhalt von "+ minio.service +" vor dem Anwenden zu überprüfen, öffnen Sie ihn in einem Texteditor, um seinen Inhalt anzuzeigen:

nano minio.service

Wenn Sie mit dem Inhalt des Skripts vertraut sind, schließen Sie Ihren Texteditor.

Systemd setzt voraus, dass die Unit-Dateien im Systemd-Konfigurationsverzeichnis gespeichert sind. Verschieben Sie also + minio.service + dorthin:

sudo mv minio.service /etc/systemd/system

Führen Sie dann den folgenden Befehl aus, um alle Systemeinheiten neu zu laden:

sudo systemctl daemon-reload

Aktivieren Sie schließlich Minio, um beim Booten zu starten:

sudo systemctl enable minio

Nachdem das systemd-Skript installiert und konfiguriert wurde, starten wir den Server.

Schritt 3 - Starten des Minio-Servers

In diesem Schritt starten Sie den Server und ändern die Firewall, um den Zugriff über die Browseroberfläche zu ermöglichen.

Starten Sie zuerst den Minio-Server:

sudo systemctl start minio

Sie können den Status von Minio, die IP-Adresse, an die es gebunden ist, die Speichernutzung und vieles mehr mit dem folgenden Befehl überprüfen:

sudo systemctl status minio

Sie sollten die folgende Ausgabe erhalten:

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://:

Als nächstes müssen Sie den Zugriff über die Firewall auf den Minio-Server am konfigurierten Port aktivieren. In diesem Tutorial ist das Port "++".

Fügen Sie also zuerst die Regel hinzu:

sudo ufw allow

Starten Sie dann die Firewall neu:

sudo systemctl restart ufw

Minio ist jetzt bereit, Datenverkehr zu akzeptieren. Bevor Sie jedoch eine Verbindung zum Server herstellen, müssen Sie die Kommunikation sichern, indem Sie ein SSL / TLS-Zertifikat installieren.

Schritt 4 - Sichern des Zugriffs auf Minio Server mit einem SSL / TLS-Zertifikat

In diesem Schritt erstellen wir mit dem konsolenbasierten Client für die Zertifikaterzeugung, Concert, ein SSL / TLS-Zertifikat unter Verwendung des Open Source-Zertifikats https: // letsencrypt. org / [Let’s Encrypt] -Zertifizierungsstelle. Während es andere Möglichkeiten gibt, Let’s Encrypt-Zertifikate zu erstellen, wurde Concert sowohl von Minios Entwicklern als auch als Teil des offiziellen https://docs.minio.io/docs/generate-let-s-encypt-certificate-using-concert-for geschrieben -minio [Installationsanleitung].

Laden Sie zunächst Concert mit dem folgenden Befehl herunter:

go get -u github.com/minio/concert

Nach Abschluss des Vorgangs sollte sich eine Datei mit dem Namen "+ concert " im Verzeichnis " bin +" Ihres GOPATH befinden.

Als Nächstes generieren wir das Zertifikat.

Führen Sie den folgenden Befehl mit dem Flag "+ - dirs +" aus, um Concert mitzuteilen, welches Ausgabeverzeichnis, welche E-Mail-Adresse und welchen Domainnamen Sie verwenden möchten:

sudo /bin/concert gen --dir

Die Ausgabe sieht folgendermaßen aus:

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

Außerdem hat Concert eine private.key- und eine public.cert-Datei generiert, die Sie überprüfen können, indem Sie ls in dem von Ihnen angegebenen Verzeichnis ausführen.

Als nächstes kopieren wir diese beiden Dateien in das Verzeichnis "+ certs " im Serverkonfigurationsordner von Minio, der für dieses Tutorial " / etc / minio +" lautet.

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

Ändern Sie nun den Besitz der Dateien in * minio-user *:

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

Starten Sie den Minio-Server neu, damit er das Zertifikat erkennt und HTTPS verwendet:

sudo systemctl restart minio

Da das generierte Let’s Encrypt-Zertifikat nur 90 Tage gültig ist und eine wiederholte manuelle Erneuerung ineffizient wäre, starten Sie Concert im Servermodus, um ein System für die automatische Erneuerung des Zertifikats einzurichten:

sudo concert server --dir  @

Damit ist die Verbindung von Minio jetzt sicher und das SSL / TLS-Zertifikat wird automatisch für Sie erneuert. Im nächsten Schritt stellen Sie über den Browser eine Verbindung zu Minio her, um den Server zu verwenden und zu verwalten.

Schritt 5 - Sichere Verbindung mit dem Webinterface von Minio über HTTPS

In diesem Schritt stellen Sie über HTTPS eine sichere Verbindung zur Minio-Weboberfläche her. Anschließend erstellen Sie Buckets und laden Objekte in diese hoch.

Greifen Sie auf das Webinterface zu, indem Sie Ihren Browser auf "+ https: //: +" zeigen.

Als Nächstes müssen Sie Ihre Anmeldeinformationen ermitteln. Minio hat seine Konfigurationsdatei in das Verzeichnis "+ / etc / minio " geschrieben, als Sie den Server in Schritt 3 gestartet haben. Diese Konfigurationsdatei, ` config.json +`, enthält die Werte * accessKey * und * secretKey *, die Sie benötigen, um jetzt auf den Server zuzugreifen. Stellen Sie sicher, dass Sie beide Schlüssel kopieren und an einem leicht zugänglichen und sicheren Ort aufbewahren.

/etc/minio/config.json

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

Melden Sie sich jetzt bei der Hauptoberfläche an, indem Sie Ihre Anmeldeinformationen eingeben und auf die runde Schaltfläche mit dem Pfeil direkt unter den Eingabefeldern klicken.

Klicken Sie von dort auf die hellrote Schaltfläche * + * unten rechts auf der Hauptoberfläche, um zwei zusätzliche gelbe Schaltflächen aufzurufen.

image: http: //assets.digitalocean.com/articles/how-to-set-up-an-object-storage-server-using-minio/61120-ssb.png [Minios Hauptschnittstelle]

Klicken Sie auf die mittlere gelbe Schaltfläche und geben Sie in der Eingabeaufforderung einen Namen für Ihren neuen Bucket ein. Drücken Sie die Taste "+ ENTER +", um Ihre Antwort zu speichern. Ihr neuer Eimer kann jetzt zur Aufbewahrung verwendet werden!

Wenn Sie Ihrem Bucket Objekte hinzufügen möchten, klicken Sie auf dieselbe hellrote Schaltfläche wie zuvor und dann auf die gelbe Schaltfläche top, um eine Eingabeaufforderung zum Hochladen von Dateien zu öffnen.

An diesem Punkt haben Sie die gesamte grundlegende Weboberfläche durchgearbeitet. Sie können jedoch nicht nur Buckets erstellen und Objekte hochladen, sondern auch neue Anmeldeinformationen generieren, Ablaufdaten für die freigegebenen Links von Objekten festlegen und Objekte insgesamt löschen.

Fazit

Sie haben jetzt einen eigenen Objektspeicherserver mit Minio, mit dem Sie über die Webschnittstelle eine sichere Verbindung mit einem Let’s Encrypt SSL / TLS-Zertifikat herstellen können. Optional können Sie die Datei Minio desktop clients für FreeBSD, Linux, Mac und Windows als alternative Methode zur Verwendung und Verwaltung des Objektspeichers aufrufen Server.

Wenn Sie die Speicherkapazität Ihrer Minio-Installation über die Festplattengröße Ihres Servers hinaus erhöhen möchten, können Sie https://www.digitalocean.com/community/tutorials/how-to-use-block-storage-on-digitalocean verwenden [DigitalOcean’s Block Storage Service] zum Anhängen eines Volumes an Ihren Server, wodurch die Speicherkapazität um bis zu 80 TB erhöht wird, zu einem Bruchteil der Kosten für das Hochfahren eines gleich großen Droplets.

Weitere Informationen zu Minio finden Sie auf der Dokumentationswebsite von project.