Instale Minio en Ubuntu Top 10.Top 10 LTS

Instale Minio en Ubuntu Top 10.Top 10 LTS
Minio es una solución autohostada para crear su propio almacenamiento de objetos. Es una alternativa para AWS S3, si ha usado ese servicio antes. El minio software en sí se envía como un binario simple e incluso la documentación oficial sugiere que lo use de esa manera, en lugar de usar un administrador de paquetes. Hay, por supuesto, imágenes de Docker si desea usarlas para ejecutar Minio en su VPS.

En este tutorial instalaremos y demostraremos el uso de Minio en Ubuntu 18.04 servidor LTS. Este VPS tiene una IP estática y configuraré las conexiones DNS y TLS para que esta tienda de objetos sea lo más segura y la producción posible.

Requisitos previos

Aquí están los requisitos previos que necesitaría si desea seguir:

  1. Un VPS que ejecuta Ubuntu o cualquier otra distribución de Linux con una IP estática (IP_Address será nuestro marcador de posición, reemplácelo con la dirección IP real de su VPS)
  2. Un nombre de dominio totalmente calificado [FQDN]. ejemplo.com será nuestro marcador de posición.

Instalación y configuración miscelánea

Iniciemos sesión en nuestro VPS y preparemos las cosas para que Minio funcione correctamente.

Configuración de DNS

Vaya al servidor de nombres donde se mantienen los registros DNS de su dominio, lo más probable es que esto se encuentre en el sitio web del registrador de su dominio. Agregue un registro A, señalando su FQDN elegido (por ejemplo Minio.ejemplo.com) a su VPS 'IP_Address.

Usuarios de minio

Antes de instalar Minio, creemos una nueva cuenta de usuario de UNIX en la que se ejecutará Minio. No queremos ejecutarlo como root o como el usuario regular que puede tener acceso a sudo u otras aplicaciones que se ejecutan debajo de él. Creamos una cuenta de Minio Sistema, llamada Minio user:

$ sudo userAdd --system minio-user --shell /sbin /nologin

Descarga de minio

A continuación, descargamos el Minio Binario (está escrito en GO que se compila en un pequeño binario liviano).

Obtener el binario

$ curl -o https: // dl.minio.IO/Server/Minio/Release/Linux-AMD64/Minio

Mueva el binario a una ubicación donde generalmente se espera que residan binarios:

$ sudo MV Minio/USR/Local/Bin

Haga que el archivo binario sea ejecutable y brinde a usuarios de minio usuarios y agrupe su propiedad:

$ sudo chmod +x/usr/local/bin/minio
$ sudo Chown Minio-User: Minio-User/USR/Local/Bin/Minio

/ETC Archivos de configuración, scripts de inicio y dispositivo de almacenamiento

Necesitamos que Minio se inicie con el reinicio del sistema y seamos reconocidos como un servicio en ejecución por el sistema operativo. No hacerlo resultaría en catástrofes como cuando el asesino de Oom ve este proceso y decide que no es lo suficientemente útil. También necesitaríamos un directorio donde se guarden los datos reales de nuestro almacén de objetos:

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

Asegúrese de que Minio tenga el control total sobre estos directorios:

$ sudo Chown Minio-User: Minio-User/USR/Local/Share/Minio
$ sudo Chown Minio-User: Minio-User /Etc /Minio

Dentro del directorio /etc /predeterminado necesitamos crear un archivo minio para especificar variables de entorno como el número de puerto en el que escucharemos y el directorio donde se deben guardar los datos (el volumen). Creamos el volumen anterior que era el directorio/usr/local/share/minio. Así que usa tu editor de texto favorito para crear un archivo /etc/default/minio y agregue el siguiente contenido dentro:

Minio_volumes = "/usr/local/share/minio/"
Minio_opts = "-c /etc /minio-dirección minio.ejemplo.com: 443 "

Asegúrese de escribir el FDQN designado real de su VPS en lugar de la cadena literal Minio.ejemplo.com arriba. El número de puerto 9000 es lo que suelen usar en la documentación, pero vamos a usar la instalación de TLS adecuada para escuchar en el puerto 443. Dado que es un número de puerto inferior a 1024, debemos decirle expresamente al sistema operativo que está bien que Minio escuche en estos puertos:

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

Por último, necesitamos configurar el minio servicio. Afortunadamente, el guión que lo hace está disponible en su repositorio de GitHub y lo colocaremos en su lugar apropiado:

$ curl -o https: // raw.githubusercontent.com/minio/minio-servicio/maestro/Linux-Systemd/
minio.servicio
$ sudo MV Minio.servicio/etc/systemd/sistema

Recargar todas las unidades Systemd y habilitar Minio para comenzar con el arranque

$ sudo SystemCtl-Daemon-Reload
$ sudo systemctl habilitar minio

Por último, asegúrese de que su firewall permita la comunicación en el puerto 443.

Letsencrypt Certificados TLS utilizando CERTBOT

Necesitamos negociar certificados TLS entre nuestro Minio Server y Letsencrypt. CertBot es el cliente que hace esto por nosotros y también automatiza las renovaciones de certificado. Primero instalemos certbot:

$ sudo apt actualización
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository PPA: certbot/certbot
$ sudo apt-get actualización
$ sudo apt-get install certbot

Luego instale los certs, según lo documentado por Minio Docs:

$ sudo certbot certonly -standalone -d minio.ejemplo.com - -staple -ocsp -m
nombre de usuario@correo electrónico.com --agree-tos

Aquí ingresa a su FQDN para el servidor Minio después del indicador -d y su dirección de correo electrónico después del indicador -m. La dirección de correo electrónico es importante, ya que le permite a Letsencrypt notificarle sobre las renovaciones pendientes.

Sus correos electrónicos ahora estarán presentes en/etc/letsencrypt/live/minio.ejemplo.comunicarse. Por supuesto, el último nombre de directorio dependería de su FQDN elegido. Ahora copie los certificados al directorio de Minio /etc /Minio y dale permiso para acceder a ellos.

$ cp/etc/letsencrypt/live/minio.ranvirslog.com/fullchain.PEM/etc/minio/certs/público.CRT
$ cp/etc/letsencrypt/live/minio.ranvirslog.com/privkey.PEM/etc/minio/certs/privado.llave
$ Chown Minio-User: Minio-User/Etc/Minio/Certs/Public.CRT
$ Chown Minio-User: Minio-User/Etc/Minio/Certs/Private.llave

Ahora está listo para usar el servicio:

$ SUDO Service Minio Start
$ sudo Service Minio Status

Producción:

  • minio.Servicio - Minio
Cargado: cargado (/etc/systemd/system/minio.servicio; desactivado; Vendor Preset: habilitado)
Activo: Activo (en ejecución) desde Tue 2018-10-09 11:54:41 PDT; Hace 5s
Documentos: https: // docs.minio.IO
Proceso: 15874 ExecstartPre =/bin/bash -c [-n "$ minio_volumes"] && echo "variable
Minio_volumes no establecido en/etc/default/minio "(código = exitado, status = 0/éxito)
PID principal: 15877 (Minio)
Tareas: 13 (límite: 4915)
CGROUP: /SISTEMA.rebanar.servicio
└─15877/usr/local/bin/minio server -c/etc/minio --Address Minio.ejemplo.com: 443 /usr /
Local/Share/Minio/
09 de octubre 11:54:41 HostName Minio [15877]: Acceso al navegador:
09 de octubre 11:54:41 HostName Minio [15877]: https: // minio.ejemplo.comunicarse
09 de octubre 11:54:41 HostName Minio [15877]: Acceso de línea de comandos: https: // documentos.minio.io/docs/
Minio-Client-Cickstart-Guide
09 de octubre 11:54:41 HostName Minio [15877]: $ MC config Host Host Agregar myminio
https: // minio.ejemplo.comunicarse
Pamh22lu3yjiflu82h2e ikj+qtc0oqdn46r3dlfsjv5bcnm8ueeibypdg8qg

La salida de este comando contendrá la tecla de acceso (Pamh22lu3yjiflu82h2e) y clave secreta (IKJ+QTC0OQDN46R3DLFSJV5BCNM8UEEIBYPDG8QG) para minio como se muestra en las letras en negrita arriba. Tus claves serían diferentes, así que no copie las mencionadas aquí.

Usando Minio

Abre tu navegador y visita https: // minio.ejemplo.comunicarse (Asegúrese de usar el FQDN que le asignó) y use la clave de acceso y secreto en su comando de estado de servicio de servicio para iniciar sesión por primera vez.

Y serás recibido por el minio ui.

Aquí puede usar el signo más en la esquina inferior izquierda para cargar archivos o crear un nuevo cubo. Creé un nuevo cubo llamado mybucket.

Puede editar su política para leer y escribir y luego cargar algunos archivos (digamos imágenes) en este cubo. Minio creará una URL única para cada objeto en un cubo. Puede establecer políticas para leer y escribir por cubo, así como la fecha de vencimiento en la URL del objeto individual.

Conclusión

Eso es lo básico de cómo comienzas con una tienda de objetos. Los objetos en sí mismos idealmente no están destinados a ser modificados, solo leen o se agregan a los cubos. Puede integrar esto en su aplicación siguiendo la documentación oficial. Admite una amplia gama de lenguajes de programación que van desde Go, Python, JavaScript hasta .NETO.