Ubuntu

Installer Minio på Ubuntu 18.04 LTS

Installer Minio på Ubuntu 18.04 LTS
Minio er en selvstyrt løsning for å lage din egen Object-lagring. Det er et alternativ for AWS S3, hvis du har brukt den tjenesten før. Minio-programvaren i seg selv sendes som en vanlig binær, og til og med den offisielle dokumentasjonen foreslår at du bruker den på den måten, i stedet for å bruke en pakkebehandling. Det er selvfølgelig Docker-bilder hvis du ønsker å bruke dem til å kjøre minio på VPS.

I denne opplæringen skal vi installere og demonstrere bruken av Minio på Ubuntu 18.04 LTS-server. Denne VPS-en har en statisk IP, og jeg skal sette opp DNS-poster og TLS-tilkoblinger for å gjøre denne objektbutikken så sikker og produksjonsklar som mulig.

Forutsetninger

Her er forutsetningene du trenger hvis du vil følge med:

  1. En VPS som kjører Ubuntu eller annen Linux-distro med en statisk IP (IP_ADDRESS vil være vår plassholder, erstatt den med VPS 'faktiske IP-adresse)
  2. Et fullt kvalifisert domenenavn [FQDN]. eksempel.com vil være vår plassholder.

Installasjon og diverse oppsett

La oss logge inn på VPS-en vår og gjøre ting klare for Minio til å kjøre ordentlig.

1.  DNS-oppsett

Gå til navneserveren der domenets DNS-poster opprettholdes, mest sannsynlig finnes dette på domeneregistratorens nettsted. Legg til en A-post, og pek den valgte FQDN (for eksempel minio.eksempel.com) til VPS 'IP_ADDRESS.

2.  Minio-bruker

Før vi installerer Minio, la oss opprette en ny UNIX-brukerkonto som minio vil kjøre under. Vi ønsker ikke å kjøre den som root eller som den vanlige brukeren som kan ha sudo-tilgang eller andre applikasjoner som kjører under den. Vi oppretter en minio-systemkonto, kalt minio-bruker:

$ sudo useradd --system miniobruker - shell / sbin / nologin

3.  Minio Last ned

Deretter laster vi ned minio binær (Det er skrevet i Go som kompileres til en liten lett binær).

Få binær

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

Flytt binærfilen til et sted der binærfiler vanligvis forventes å være:

$ sudo mv minio / usr / local / bin

Gjør den binære filen kjørbar og gi minibrukerbruker og gruppe eierskap:

$ sudo chmod + x / usr / local / bin / minio
$ sudo chown minio-bruker: minio-user / usr / local / bin / minio

4.  / etc konfigurasjonsfiler, oppstartsskript og lagringsenhet

Vi trenger Minio for å starte opp med omstart av systemet og bli anerkjent som en løpende tjeneste av operativsystemet. Hvis du ikke gjør det, vil det føre til katastrofer som når OOM-drapsmannen ser denne prosessen og bestemmer at den ikke er nyttig nok. Vi trenger også en katalog der de faktiske dataene til objektbutikken vår skal lagres:

$ sudo mkdir / usr / local / share / minio
$ sudo mkdir / etc / minio

Forsikre deg om at minio har full kontroll over disse katalogene:

$ sudo chown minio-bruker: minio-user / usr / local / share / minio
$ sudo chown minio-bruker: minio-user / etc / minio

Inne i / etc / standardkatalogen trenger vi å lage en miniofil for å spesifisere miljøvariabler som portnummeret vi skal lytte til og katalogen der dataene skal lagres (volumet). Vi opprettet volumet tidligere som var / usr / local / share / minio-katalogen. Så bruk din favoritt teksteditor for å lage en fil / etc / default / minio og legg til følgende innhold i den:

MINIO_VOLUMES = "/ usr / local / share / minio /"
MINIO_OPTS = "- C / etc / minio - adresse minio.eksempel.com: 443 "

Forsikre deg om at du skriver VPS 'faktiske FDQN i stedet for den bokstavelige strengminio.eksempel.com ovenfor. Portnummer 9000 er det de vanligvis bruker i dokumentasjonen, men vi skal bruke riktig TLS-installasjon til å lytte i port 443. Siden det er et portnummer mindre enn 1024, må vi uttrykkelig fortelle OS at det er greit at minio hører på disse portene:

$ sudo setcap 'cap_net_bind_service = + ep' / usr / local / bin / minio

Til slutt må vi konfigurere minio service. Heldigvis er skriptet som gjør det tilgjengelig på deres GitHub repo, og vi vil plassere det på riktig sted:

$ curl -O https: // rå.githubusercontent.com / minio / minio-service / master / linux-systemd /
minio.service
$ sudo mv minio.service / etc / systemd / system

Last alle systemd enheter på nytt og la minio starte ved oppstart

$ sudo systemctl daemon-reload
$ sudo systemctl aktiver minio

Til slutt, sørg for at brannmuren din tillater kommunikasjon i port 443.

LetsEncrypt TLS-sertifikater ved hjelp av Certbot

Vi må forhandle TLS-sertifikater mellom Minio-serveren vår og LetsEncrypt. Certbot er klienten som gjør dette for oss og automatiserer også sertifikatfornyelsene. La oss først installere Certbot:

$ sudo apt oppdatering
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa: certbot / certbot
$ sudo apt-get oppdatering
$ sudo apt-get install certbot

Installer deretter seriene, som dokumentert av Minio Docs:

$ sudo certbot certonly --standalone -d minio.eksempel.com --staple-ocsp -m
brukernavn @ e-post.com - enig-til

Her skriver du inn FQDN for Minio-serveren etter -d-flagget og e-postadressen din etter -m-flagget. E-postadressen er viktig da den lar LetsEncrypt varsle deg om ventende fornyelse.

E-postene dine vil nå være til stede på / etc / letsencrypt / live / minio.eksempel.com. Selvfølgelig vil det siste katalognavnet avhenge av din valgte FQDN. Kopier nå seriene til Minio / etc / minio-katalogen og gi den tillatelse til å få tilgang til 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.nøkkel
$ chown minio-bruker: minio-user / etc / minio / certs / public.crt
$ chown minio-bruker: minio-user / etc / minio / certs / private.nøkkel

Nå er du klar til å bruke tjenesten:

$ sudo service minio start
$ sudo service minio status

Produksjon:

Lastet: lastet (/ etc / systemd / system / minio.service; funksjonshemmet; leverandør forhåndsinnstilling: aktivert)
Aktiv: aktiv (kjører) siden ti 2018-10-09 11:54:41 PDT; 5s siden
Dokumenter: https: // dokumenter.minio.io
Prosess: 15874 ExecStartPre = / bin / bash -c [-n "$ MINIO_VOLUMES"] && echo "Variabel
MINIO_VOLUMES ikke satt i / etc / default / minio "(kode = avsluttet, status = 0 / SUKSESS)
Hoved-PID: 15877 (minio)
Oppgaver: 13 (grense: 4915)
CGroup: / system.skive / minio.service
└─15877 / usr / local / bin / minio server -C / etc / minio - adresse minio.eksempel.com: 443 / usr /
lokal / del / minio /
 
09. okt 11:54:41 vertsnavn minio [15877]: Nettlesertilgang:
09. okt 11:54:41 vertsnavn minio [15877]: https: // minio.eksempel.com
9. okt 11:54:41 vertsnavn minio [15877]: Kommandolinjetilgang: https: // docs.minio.io / docs /
minio-client-quickstart-guide
09. 09 11:54:41 vertsnavn minio [15877]: $ mc config vert legg til myminio
https: // minio.eksempel.com
PAMH22LU3YJIFLU82H2E IKJ + qtc0Oqdn46R3dLfsjv5bCnm8UEeIBYpdG8qg
..

Utgangen av denne kommandoen vil inneholde tilgangsnøkkelen (PAMH22LU3YJIFLU82H2E) og hemmelig nøkkel (IKJ + qtc0Oqdn46R3dLfsjv5bCnm8UEeIBYpdG8qg) for minio som vist med fete bokstaver ovenfor. Nøklene dine ville være forskjellige, så ikke kopier de som er nevnt her.

Bruke Minio

Åpne nettleseren din og besøk https: // minio.eksempel.com (sørg for å bruke FQDN du har tildelt) og bruk tilgangs- og hemmelige nøkkelen som er oppført i tjenesteminiostatuskommandoen for å logge på for første gang.

Og du vil bli møtt av Minio UI.

Her kan du bruke plusstegnet nederst til venstre for å laste opp filer eller opprette en ny bøtte. Jeg opprettet en ny bøtte som heter mybucket.

Du kan redigere retningslinjene for å lese og skrive og deretter laste opp noen få filer (si bilder) i denne bøtta. Minio vil opprette en unik URL for hvert objekt i en bøtte. Du kan angi policyer for lese og skrive per bøtte, samt utløpsdatoen på det enkelte objekts URL.

Konklusjon

Det er det grunnleggende om hvordan du kommer i gang med en objektbutikk. Objektene i seg selv er ideelt sett ikke ment å bli modifisert, bare lest fra eller lagt til skuffene. Du kan integrere dette i søknaden din ved å følge den offisielle dokumentasjonen.  Den støtter et bredt spekter av programmeringsspråk fra Go, Python, JavaScript til .NETT.

Topp Oculus App Lab-spill
Hvis du er Oculus-hodesettinnehaver, må du være klar over sideloading. Sidelading er prosessen med å installere ikke-butikkinnhold på hodesettet. Side...
Topp 10 spill å spille på Ubuntu
Windows-plattformen har vært en av de dominerende plattformene for spill på grunn av den enorme andelen spill som utvikles i dag for å støtte Windows ...
5 beste arkadespill for Linux
I dag er datamaskiner seriøse maskiner som brukes til spill. Hvis du ikke kan få den nye høye poengsummen, vil du vite hva jeg mener. I dette innlegge...