Windows: MinIO als Dienst installieren und einrichten

MinIO bietet die Möglichkeit, eigene S3-kompatible Objektspeicher-Server zu installieren und zu betreiben, die Administration erfolgt dabei über ein Web-Interface. Für Linux gibt es unzählige Anleitungen, nachfolgend geht es zur Abwechslung mal um Windows.

MinIO an sich ist unter Windows sehr simple: Herunterladen und die *.exe-Datei ausführen und schon läuft es. Eine Installation gibt es nicht. Soweit so einfach und minimal, es geht allerdings auch (imho) besser.

MinIO als Dienst einrichten

Natürlich könnte man MinIO auch einfach immer manuell oder mittels Aufgabe starten, als Dienst stellt dabei eine weitere Option dar und ist in der Regel für den Einsatz ohne Benutzeranmeldung an Windows die empfehlenswerteste Variante.

Von sich aus ist allerdings keine Einrichtung als Dienst unter Windows vorgesehen, daher greift man an dieser Stelle auf Tools wie zum Beispiel NSSM zurück um dies möglichst einfach zu handhaben:

  • Die aktuelle Version von MinIO und NSSM herunterladen.
  • Beides in einen Ordner, z.B. “C:\MinIO” speichern.
  • NSSM, z.B. nach “C:\MinIO\NSSM” entpacken.

MinIO wird über eine Kombination aus Parametern und Umgebungsvariablen konfiguriert. Beides kann man in NSSM eintragen, um alles auf einen Blick zu haben und (imho) einfacher ändern zu können empfiehlt sich dies über ein Skript zu realisieren, welches wiederum von NSSM dann als Dienst ausgeführt wird:

  • Eine Datei “minio-service.cmd” mit folgendem Inhalt erstellen:
    @echo off
    
    set MINIO_ROOT_USER=<Benutzername, z.B. admin>
    set MINIO_ROOT_PASSWORD=<Passwort>
    
    C:\minio\minio.exe server F:\S3 --address ":9000" --console-address ":9001" > minio.log 2>&1

    Das Skript muss auf die eigene Umgebung bzw. Anforderungen angepasst werden!
    In diesem Beispiel wird als Ablageort “F:\S3” festgelegt.
    Der Port 9000/tcp wird für die S3-kompatiblen Clients verwendet,
    das Web-Interface ist über Port 9001/tcp erreichbar.
    Für den Zugriff von außerhalb des Servers müssen die entsprechenden Ports in der Windows-Firewall freigegeben werden.
    Wichtig: Die hier gezeigte Konfiguration verwendet kein SSL/TLS, d.h. die Zugriffe erfolgen unverschlüsselt! Für die Nutzung über das Internet ist dies ein No-Go! Es wird empfohlen entweder MinIO mit einem Zertifikat zu konfigurieren oder einen Reverse Proxy einzusetzen.

  • NSSM mit
    C:\MinIO\NSSM\win64\nssm.exe install MinIO

    starten und auf der Registerkarte “Application” folgende Einträge vornehmen:
    Tipp: Der Dienst kann mit

    C:\MinIO\NSSM\win64\nssm.exe edit MinIO

    bearbeitet werden.

  • Nach einem Klick auf “Install service” ist der Dienst eingerichtet und kann in der Dienste-Verwaltung oder mit “net start MinIO” gestartet werden.

Der erste Zugriff auf das Web-Interface

Jenseits der Grundeinrichtung von MiniIO erfolgt die weitere Konfiguration von z.B. Buckets, Benutzern und Richtlinien mittels Web-Interface. Ausgehend von den Voreinstellungen ist dieses via Browser mit der Adresse

http://<localhost-oder-IP-oder-FQDN-des-Servers>:9001

zu erreichen:

Buckets, Benutzer und Richtlinien anlegen

Neue Buckets werden unter “Buckets” nach einem Klick auf “Create Bucket +” zu MinIO hinzugefügt, zu beachten hierbei ist, das der Name nur Kleinbuchstaben enthält:

Neue Benutzer werden unter “Identity” angelegt, es wird dabei unterschieden zwischen “Users”, also denjenigen die Zugriff auf das Web-Interface erhalten sollen und “Service Accounts”, gemeint sind damit solche Konten die beispielsweise in restic, BackupAssist usw. verwendet werden:

Möchte man Benutzer oder Service Accounts auf bestimmte Buckets beschränken geht dies mit Hilfe einer Richtlinie. Diese werden unter “Access” eingerichtet:

Hier die Richtlinie (RAW) als Vorlage zum kopieren:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::<Bucketname>/*"
            ]
        }
    ]
}

Die Richtlinie muss dann noch dem Benutzer zugewiesen werden, dies geht in dessen Eigenschaften:

Bemerkung: Für den administrativen Benutzer können zwar Service Accounts angelegt werden, diesem und dessen Service Accounts können allerdings keine Richtlinien zugewiesen werden!

Updates von MinIO unter Windows sind in der Regel einfach:

  • Den Dienst beenden.
  • Die minio.exe durch die neueste Version ersetzen.
  • Den Dienst starten.

Es gibt mitunter sehr häufig Updates, einen ersten Überblick kann man sich auf GitHub verschaffen:

https://github.com/minio/minio/releases

Die jeweils aktuellste Version findet man hier:

https://min.io/download#/windows

Ältere Versionen gibt es wiederum hier:

https://dl.min.io/server/minio/release/windows-amd64/archive/

3 Kommentare

  1. DFFVB

    Sehr spannend! Mag das Tool sehr, weil es sich einfach einrichten lässt – und nun die Gretchen-Frage: Wer brauchts? Das kann mir keiner so richtig beantworten – man liest immer wieder von vielen kleinen unstrukturierten Daten? Was heißt das? Bilder? MP3? Frage für einen Freund 😉 Schönes Wochenende Andy!

  2. Andy

    Eine Erklärung findet sich beispielsweise hier:

    https://www.linode.com/de/blog/cloud-storage/s3-compatible-object-storage-for-your-business/
    https://blog.proact.de/blog/2016/10/26/was-ist-eigentlich-object-storage/

    Wer’s brauch? Kommt darauf an, was man macht oder machen möchte, so wie bei jedem Speichersubsystem.
    Ein (imho) Vorteil von S3 ist, das es via http/https läuft und somit für den Einsatz über das Internet geeignet ist (sofern man https verwendet, versteht sich ;-))
    Damit ist es einfach beispielweise Backups mit entsprechend kompatiblen Programme wie BackupAssist, restic, rclone, WinSCP, etc. auf entfernten Servern/Cloud-Speichern abzulegen.
    Das ist allerdings nur ein Aspekt.

  3. DFFVB

    Hallöchen, hab die ANleitung gerade wieder befolgt, und gefällt mir immer noch, worauf man relativ schnell stößt: TLS Fehler. Die meisten S3 Clients setzen dies voraus, wenn man wöllte, könnte man die Anleitung noch darum ergänzen, dann hat man alles an einem Ort. Schönes WE

    https://min.io/docs/minio/linux/operations/network-encryption.html

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

© 2024 Andy's Blog

Theme von Anders NorénHoch ↑