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:
- 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)
- 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 / nologin3. 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 / minioFlytt binærfilen til et sted der binærfiler vanligvis forventes å være:
$ sudo mv minio / usr / local / binGjø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 / minioTil 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 -mbrukernavn @ 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:
- minio.service - Minio
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.