I denna handledning kommer vi att installera och demonstrera användningen av Minio på Ubuntu 18.04 LTS-server. Denna VPS har en statisk IP och jag kommer att ställa in DNS-poster och TLS-anslutningar för att göra denna Objektbutik så säker och produktionsklar som möjligt.
Förutsättningar
Här är förutsättningarna du behöver om du vill följa med:
- En VPS som kör Ubuntu eller någon annan Linux-distro med en statisk IP (IP_ADDRESS kommer att vara vår platshållare, ersätt den med din VPS faktiska IP-adress)
- Ett fullständigt kvalificerat domännamn [FQDN]. exempel.com kommer att vara vår platshållare.
Installation och diverse installation
Låt oss logga in på vår VPS och göra saker redo för att Minio ska fungera ordentligt.
1. DNS-inställning
Gå till namnservern där domänens DNS-poster upprätthålls, troligtvis finns detta på din domänregistrators webbplats. Lägg till en A-post och peka på din valda FQDN (till exempel minio.exempel.com) till din VPS IP_ADDRESS.
2. Minio-användare
Innan vi installerar Minio, låt oss skapa ett nytt UNIX-användarkonto under vilket minio ska köras. Vi vill inte köra den som root eller som den vanliga användaren som kan ha sudo-åtkomst eller andra program som körs under den. Vi skapar ett minio-systemkonto med namnet minioanvändare:
$ sudo useradd --system minioanvändare - shell / sbin / nologin3. Minio nedladdning
Därefter laddar vi ner minio binärt (Det är skrivet i Go som kompileras till en liten lättviktsbinär).
Få binär
$ curl -O https: // dl.minio.io / server / minio / release / linux-amd64 / minioFlytta binären till en plats där binärfiler vanligtvis förväntas finnas:
$ sudo mv minio / usr / local / binGör den binära filen körbar och ge minioanvändaranvändare och gruppera sitt ägande:
$ sudo chmod + x / usr / local / bin / minio$ sudo chown minio-användare: minio-användare / usr / lokal / bin / minio
4. / etc konfigurationsfiler, startskript och lagringsenhet
Vi behöver Minio för att starta om med systemåterstart och erkännas som en löpande tjänst av operativsystemet. Att inte göra det skulle leda till katastrofer som när OOM-mördaren ser denna process och beslutar att den inte är tillräckligt användbar. Vi skulle också behöva en katalog där de faktiska uppgifterna i vår objektbutik kommer att sparas:
$ sudo mkdir / usr / local / share / minio$ sudo mkdir / etc / minio
Se till att minio har full kontroll över dessa kataloger:
$ sudo chown minio-användare: minio-användare / usr / lokal / dela / minio$ sudo chown minio-användare: minio-användare / etc / minio
Inuti / etc / standardkatalogen måste vi skapa en miniofil för att specificera miljövariabler som portnumret vi ska lyssna på och katalogen där data ska sparas (volymen). Vi skapade volymen tidigare som var / usr / local / share / minio-katalogen. Så använd din favorittextredigerare för att skapa en fil / etc / default / minio och lägg till följande innehåll i den:
MINIO_VOLUMES = "/ usr / local / share / minio /"MINIO_OPTS = "- C / etc / minio - adress minio.exempel.com: 443 "
Se till att du skriver din VPS faktiska FDQN istället för den bokstavliga strängminio.exempel.com ovan. Portnummer 9000 är vad de brukar använda i dokumentationen men vi kommer att använda korrekt TLS-installation för att lyssna på port 443. Eftersom det är ett portnummer mindre än 1024 måste vi uttryckligen berätta för operativsystemet att det är okej att minio lyssnar på dessa portar:
$ sudo setcap 'cap_net_bind_service = + ep' / usr / local / bin / minioSlutligen måste vi konfigurera minio service. Lyckligtvis är skriptet som gör det tillgängligt på deras GitHub-repo och vi kommer att placera det på rätt plats:
$ curl -O https: // raw.githubusercontent.com / minio / minio-service / master / linux-systemd /minio.service
$ sudo mv minio.service / etc / systemd / system
Ladda om alla systemd enheter och aktivera minio att starta vid start
$ sudo systemctl daemon-reload$ sudo systemctl aktiverar minio
Slutligen, se till att din brandvägg tillåter kommunikation vid port 443.
LetsEncrypt TLS-certifikat med Certbot
Vi måste förhandla fram TLS-certifikat mellan vår Minio-server och LetsEncrypt. Certbot är klienten som gör detta åt oss och automatiserar också certifikatförnyelserna. Låt oss först installera Certbot:
$ sudo apt uppdatering$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa: certbot / certbot
$ sudo apt-get-uppdatering
$ sudo apt-get install certbot
Installera sedan certifikaten, som dokumenterats av Minio Docs:
$ sudo certbot certonly - fristående -d minio.exempel.com --staple-ocsp -manvändarnamn @ e-post.com --agree-tos
Här anger du din FQDN för Minio-servern efter -d-flaggan och din e-postadress efter -m-flaggan. E-postadressen är viktig eftersom den tillåter LetsEncrypt att meddela dig om väntande förnyelser.
Dina e-postmeddelanden kommer nu att finnas på / etc / letsencrypt / live / minio.exempel.com. Naturligtvis beror det sista katalognamnet på din valda FQDN. Kopiera nu certifikaten till Minio / etc / minio-katalogen och ge den behörighet att komma åt dem.
$ 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.nyckel-
$ chown minioanvändare: minioanvändare / etc / minio / certs / public.crt
$ chown minio-användare: minio-användare / etc / minio / certs / privat.nyckel-
Nu är du redo att använda tjänsten:
$ sudo service minio start$ sudo service minio status
Produktion:
- minio.service - Minio
Aktiv: aktiv (igång) sedan tis 2018-10-09 11:54:41 PDT; För 5 år sedan
Dokument: https: // dokument.minio.io
Process: 15874 ExecStartPre = / bin / bash -c [-n "$ MINIO_VOLUMES"] && echo "Variabel
MINIO_VOLUMES inte inställd i / etc / default / minio "(kod = avslutad, status = 0 / SUCCESS)
Huvud-PID: 15877 (minio)
Uppgifter: 13 (gräns: 4915)
CGroup: / system.skiva / minio.service
└─15877 / usr / local / bin / minio server -C / etc / minio --adress minio.exempel.com: 443 / usr /
lokal / dela / minio /
09 okt 11:54:41 värdnamn minio [15877]: Webbläsaråtkomst:
09 okt 11:54:41 värdnamn minio [15877]: https: // minio.exempel.com
09 okt 11:54:41 värdnamn minio [15877]: Kommandoradsåtkomst: https: // docs.minio.io / docs /
minio-klient-snabbstartsguide
09 okt 11:54:41 värdnamn minio [15877]: $ mc config host lägg till myminio
https: // minio.exempel.com
PAMH22LU3YJIFLU82H2E IKJ + qtc0Oqdn46R3dLfsjv5bCnm8UEeIBYpdG8qg
..
Utgången från det här kommandot innehåller åtkomstnyckeln (PAMH22LU3YJIFLU82H2E) och hemlig nyckel (IKJ + qtc0Oqdn46R3dLfsjv5bCnm8UEeIBYpdG8qg) för minio som visas i fetstil ovan. Dina nycklar skulle vara annorlunda så kopiera inte de som nämns här.
Använda Minio
Öppna din webbläsare och besök https: // minio.exempel.com (se till att använda det FQDN du har tilldelat) och använd åtkomst- och hemlig nyckel som listas i ditt tjänstminiostatuskommando för att logga in för första gången.
Och du kommer att hälsas av Minio UI.
Här kan du använda plustecknet längst ned till vänster för att ladda upp filer eller skapa en ny hink. Jag skapade en ny hink som heter mybucket.
Du kan redigera dess policy för att läsa och skriva och sedan ladda upp några filer (säg bilder) i den här skopan. Minio skapar en unik URL för varje objekt i en hink. Du kan ställa in policyer för läsning och skrivning per hink samt utgångsdatum för enskilda objekts URL.
Slutsats
Det är grunderna för hur du kommer igång med en objektbutik. Objekten själva är idealiskt inte avsedda att modifieras, bara läsas från eller läggs till skoporna. Du kan integrera detta i din ansökan genom att följa den officiella dokumentationen. Den stöder ett brett utbud av programmeringsspråk som sträcker sig från Go, Python, JavaScript till .NETTO.