Installa Minio sulla top 10 di Ubuntu.Top 10 LTS

Installa Minio sulla top 10 di Ubuntu.Top 10 LTS
Minio è una soluzione autosuocata per la creazione del proprio archivio oggetti. È un'alternativa per AWS S3, se hai usato quel servizio prima. Il software Minio stesso viene spedito come un semplice binario e persino la documentazione ufficiale ti suggerisce di usarlo in questo modo, invece di utilizzare un gestore di pacchetti. Ci sono, ovviamente, immagini Docker se si desidera usarle per eseguire Minio sui vice VPS.

In questo tutorial installeremo e dimostreremo l'uso di Minio su Ubuntu 18.04 Server LTS. Questo VPS ha un IP statico e imposterò i record DNS e le connessioni TLS per rendere questo negozio di oggetti il ​​più sicuro e la produzione possibile.

Prerequisiti

Ecco i prerequisiti di cui avresti bisogno se vuoi seguire:

  1. Un VPS che esegue Ubuntu o qualsiasi altra distribuzione Linux con un IP statico (IP_ADDRESS sarà il nostro segnaposto, lo sostituirà con l'indirizzo IP effettivo del tuo VPS)
  2. Un nome di dominio completamente qualificato [FQDN]. esempio.com sarà il nostro segnaposto.

Installazione e configurazione varie

Accediamo ai nostri VP e prepara le cose per il funzionamento corretto.

Setup DNS

Vai a Nameserver in cui vengono mantenuti i record DNS del tuo dominio, molto probabilmente si trova sul sito Web del tuo registrar di dominio. Aggiungi un record A, puntando il tuo FQDN prescelto (ad esempio Minio.esempio.com) al tuo VPS 'IP_ADDRES.

Utente Minio

Prima di installare MINIO, creiamo un nuovo account utente UNIX con il quale verrà eseguito Minio. Non vogliamo eseguirlo come root o come utente normale che potrebbe avere un accesso sudo o altre applicazioni in esecuzione sotto di esso. Creiamo un account Minio System, chiamato Minio-User:

$ sudo useradd-system minio-uker --shell /sbin /nologin

Download Minio

Successivamente scarichiamo il minio binario (è scritto in go che compila in un piccolo binario leggero).

Ottieni il binario

$ CURL -O https: // dl.Minio.IO/Server/Minio/Release/Linux-AMD64/MINIO

Spostare il binario in un luogo in cui si prevede che i binari risiedano:

$ sudo MV MINIO/USR/Local/Bin

Rendi eseguibile il file binario e dai l'utente dell'utente e raggruppa la sua proprietà:

$ sudo chmod +x/usr/local/bin/minio
$ sudo chown minio-uker: MINIO-USER/USR/LOCAL/BIN/MINIO

/ecc. File di configurazione, script di avvio e dispositivo di archiviazione

Abbiamo bisogno di Minio per avviare il riavvio di System ed essere riconosciuti come servizio in esecuzione dal sistema operativo. Non farlo comporterebbe catastrofi come quando l'OOM-killer vede questo processo e decide che non è abbastanza utile. Avremmo anche bisogno di una directory in cui verranno salvati i dati effettivi del nostro negozio di oggetti:

$ sudo mkdir/usr/local/share/mine
$ sudo mkdir /etc /miniio

Assicurati che Minio abbia il pieno controllo su queste directory:

$ sudo chown minio-uker: MINIO-USER/USR/Local/Share/Minio
$ sudo chown minio-uker: minio-uker /etc /mine

All'interno della directory /etc /default dobbiamo creare un file MINIO per specificare variabili di ambiente come il numero di porta su cui ascolteremo e la directory in cui i dati dovrebbero essere salvati (il volume). Abbiamo creato il volume in precedenza che era la directory/USR/Local/Share/Minio. Quindi usa il tuo editor di testo preferito per creare un file /etc/predefinito/minio e aggiungi i seguenti contenuti al suo interno:

MINIO_Volumes = "/usr/local/share/minio/"
Minio_opts = "-c /etc /mine-Address Minio.esempio.com: 443 "

Assicurati di scrivere FDQN designato effettivo del VPS invece del letterale String Minio.esempio.com sopra. La porta numero 9000 è ciò che usano di solito nella documentazione, ma utilizzeremo l'ascolto di installazione TLS corretta alla porta 443. Dal momento che è un numero di porta inferiore a 1024, dobbiamo dire espressamente al sistema operativo che va bene per Minio ascoltare su queste porte:

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

Infine, dobbiamo configurare il Minio servizio. Fortunatamente la sceneggiatura che lo fa è disponibile nel loro repo di Github e lo metteremo nel suo posto appropriato:

$ CURL -O https: // raw.githubusercontent.com/minio/minio-service/master/linux-systemd/
Minio.servizio
$ sudo MV MINIO.Servizio/etc/systemd/system

Ricarica tutte le unità SystemD e abilita MINIO per iniziare l'avvio

$ sudo systemctl demone-ricaricamento
$ sudo systemctl abilita minio

Infine, assicurati che il tuo firewall consenta la comunicazione alla porta 443.

Certificati TLS LetSencrypt utilizzando CERTBOT

Dobbiamo negoziare i certificati TLS tra il nostro server MINIO e leTsencrypt. CertBot è il client che lo fa per noi e automatizza anche i rinnovi del certificato. Installiamo la prima certificazione:

$ sudo apt update
$ sudo apt-get Installa software-Properties-Common
$ sudo ADD-APP-Repository PPA: certbot/certbot
$ sudo apt-get update
$ sudo apt-get Installa certbot

Quindi installare i certificati, come documentato da Minio Docs:

$ sudo certbot certonly -Standalone -D Minio.esempio.com --staple -oCsp -m
Nome [email protected]

Qui inserisci il tuo FQDN per il server Minio dopo il flag -d e il tuo indirizzo e -mail dopo il flag -m. L'indirizzo e -mail è importante in quanto consente di avvisare di avvisarti dei rinnovi in ​​sospeso.

Le tue e -mail saranno ora presenti a/etc/letsencrypt/live/miniio.esempio.com. Naturalmente, l'ultimo nome della directory dipenderebbe dal tuo FQDN scelto. Ora copia i certificati nella directory di Minio /etc /Minio e dargli il permesso di accedervi.

$ cp/etc/letsencrypt/live/miniio.RANVIRSLOG.com/fullchain.PEM/ETC/MINIO/CERTS/PUBLIC.Crt
$ cp/etc/letsencrypt/live/miniio.RANVIRSLOG.com/privkey.PEM/ETC/MINIO/CERTS/privato.chiave
$ CHOWN MINIO-USER: MINIO-USER/ETC/MINIO/CERTS/PUBLIC.Crt
$ CHOWN MINIO-USER: MINIO-USER/ETC/MINIO/CERTS/PRIVATO.chiave

Ora sei pronto per utilizzare il servizio:

$ sudo Service Minio inizio
$ sudo Service Minio Status

Produzione:

  • Minio.Servizio - Minio
Caricato: caricato (/etc/systemd/system/minio.servizio; Disabilitato; preimpostazione del fornitore: abilitato)
Active: Active (in esecuzione) dal TUE 2018-10-09 11:54:41 PDT; 5s fa
Documenti: https: // docs.Minio.io
Processo: 15874 ExecStartPre =/bin/Bash -c [-n "$ MINIO_Volumes"] && echo "
MINIO_Volumes non impostati in/etc/default/minio "(code = usete, status = 0/successo)
PID principale: 15877 (Minio)
Attività: 13 (limite: 4915)
Cgroup: /sistema.Slice/Minio.servizio
└roniche.esempio.com: 443 /usr /
locale/share/minio/
09 ottobre 11:54:41 Hostname Minio [15877]: Accesso al browser:
09 ottobre 11:54:41 Hostname MINIO [15877]: https: // MINIO.esempio.com
09 ottobre 11:54:41 Hostname MINIO [15877]: Accesso alla linea di comando: https: // docs.Minio.io/docs/
Guide Miniio-Client-Quickstart
09 ottobre 11:54:41 Hostname MINIO [15877]: $ MC Config Host Aggiungi myminio
https: // miniio.esempio.com
PAMH22LU3YJIFLU82H2E IKJ+QTC0OQDN46R3DLFSJV5BCNM8UEEIBYPDGG8QG
..

L'output di questo comando conterrà la chiave di accesso (PAMH22LU3YJIFLU82H2E) e chiave segreta (IKJ+QTC0OQDN46R3DLFSJV5BCNM8UEEIBYPDG8QG) per Minio come mostrato in grassetto sopra. Le tue chiavi sarebbero diverse, quindi non copiare quelle menzionate qui.

Usando Minio

Apri il tuo browser e visita https: // miniio.esempio.com (Assicurati di utilizzare il FQDN assegnato) e utilizzare la chiave Access e Secret Elencata nel comando Stato MINIO SERVIZIO per accedere per la prima volta.

E sarai accolto dall'interfaccia utente Minio.

Qui puoi usare il segno più nell'angolo in basso a sinistra per caricare file o creare un nuovo secchio. Ho creato un nuovo secchio chiamato mybucket.

Puoi modificare la sua politica per leggere e scrivere e quindi caricare alcuni file (dire immagini) in questo secchio. Minio creerà un URL unico per ogni oggetto in un secchio. È possibile impostare politiche per la lettura e la scrittura per secchio e la data di scadenza sull'URL del singolo oggetto.

Conclusione

Questa è le basi di come inizi con un negozio di oggetti. Gli oggetti stessi idealmente non sono pensati per essere modificati appena letti o aggiunti ai secchi. Puoi integrarlo nella tua applicazione seguendo la documentazione ufficiale. Supporta una vasta gamma di linguaggi di programmazione che vanno da Go, Python, JavaScript a .NETTO.