Ubuntu

Instalar Minio en Ubuntu 18.04 LTS

Instalar Minio en Ubuntu 18.04 LTS
Minio es una solución autohospedada para crear su propio almacenamiento de objetos. Es una alternativa para AWS S3, si ha utilizado ese servicio antes. El software Minio 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 utilizarlas 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 estaré configurando registros DNS y conexiones TLS para que este almacén de objetos sea lo más seguro y listo para producción posible.

Prerrequisitos

Estos son los requisitos previos que necesitaría si desea seguir adelante:

  1. Un VPS que ejecute 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 completamente 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 todo para que Minio funcione correctamente.

1.  Configuración de DNS

Vaya al servidor de nombres donde se mantienen los registros DNS de su dominio, lo más probable es que se encuentre en el sitio web de su registrador de dominios. Agregue un registro A, apuntando su FQDN elegido (por ejemplo, minio.ejemplo.com) a la IP_ADDRESS de su VPS.

2.  Usuario Minio

Antes de instalar Minio, creemos una nueva cuenta de usuario de UNIX con la que se ejecutará minio. No queremos ejecutarlo como root o como el usuario normal que puede tener acceso a sudo u otras aplicaciones ejecutándose bajo él. Creamos una cuenta del sistema minio, denominada minio-usuario:

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

3.  Descargar Minio

A continuación, descargamos el binario minio (está escrito en Go, que se compila en un binario pequeño y ligero).

Obtener el binario

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

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

$ sudo mv minio / usr / local / bin

Haga que el archivo binario sea ejecutable y otorgue al grupo y al usuario miniousuario su propiedad:

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

4.  / etc archivos de configuración, scripts de inicio y dispositivo de almacenamiento

Necesitamos que Minio se inicie con el reinicio del sistema y el sistema operativo lo reconozca como un servicio en ejecución. No hacerlo daría lugar a 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 guardarán 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 control total sobre estos directorios:

$ sudo chown minio-usuario: minio-usuario / usr / local / share / minio
$ sudo chown minio-usuario: minio-usuario / etc / minio

Dentro del directorio / etc / default 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 anteriormente 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 de él:

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 el que suelen utilizar en la documentación, pero vamos a utilizar la instalación adecuada de TLS escuchando en el puerto 443. Dado que es un número de puerto menor que 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 script que lo hace está disponible en su repositorio de GitHub y lo colocaremos en su lugar apropiado:

$ curl -O https: // crudo.githubusercontent.com / minio / minio-service / master / linux-systemd /
minio.Servicio
$ sudo mv minio.servicio / etc / systemd / system

Recargue todas las unidades systemd y permita que minio se inicie en 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 TLS Certificados usando Certbot

Necesitamos certificados TLS negociados entre nuestro servidor Minio y LetsEncrypt. Certbot es el cliente que hace esto por nosotros y también automatiza las renovaciones de certificados. Primero instalemos Certbot:

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

Luego instale los certificados, 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 --acuerdo

Aquí ingresa 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 renovaciones pendientes.

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

$ 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.clave
$ chown minio-usuario: minio-usuario / etc / minio / certs / public.crt
$ chown minio-usuario: minio-usuario / etc / minio / certs / private.clave

Ahora está listo para usar el servicio:

$ sudo service minio start
$ sudo service minio status

Producción:

Cargado: cargado (/ etc / systemd / system / minio.Servicio; discapacitado; preajuste del proveedor: 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 = salido, estado = 0 / SUCCESS)
PID principal: 15877 (minio)
Tareas: 13 (límite: 4915)
CGroup: / sistema.rebanada / minio.Servicio
└─15877 / usr / local / bin / minio server -C / etc / minio --address minio.ejemplo.com: 443 / usr /
local / compartir / minio /
 
09 de octubre 11:54:41 nombre de host minio [15877]: Acceso al navegador:
09 de octubre 11:54:41 nombre de host minio [15877]: https: // minio.ejemplo.com
09 de octubre 11:54:41 nombre de host minio [15877]: Acceso a la línea de comandos: https: // docs.minio.io / docs /
minio-client-quickstart-guide
09 de octubre 11:54:41 nombre de host minio [15877]: $ mc config host add myminio
https: // minio.ejemplo.com
PAMH22LU3YJIFLU82H2E IKJ + qtc0Oqdn46R3dLfsjv5bCnm8UEeIBYpdG8qg
..

La salida de este comando contendrá la clave de acceso (PAMH22LU3YJIFLU82H2E) y clave secreta (IKJ + qtc0Oqdn46R3dLfsjv5bCnm8UEeIBYpdG8qg) para minio como se muestra arriba en negrita. Tus claves serían diferentes, así que no copies las que se mencionan aquí.

Usando Minio

Abra su navegador y visite https: // minio.ejemplo.com (asegúrese de usar el FQDN que asignó) y use el acceso y la clave secreta que figuran en el comando de estado de su servicio minio para iniciar sesión por primera vez.

Y serás recibido por la interfaz de usuario de Minio.

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

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

Conclusión

Eso es lo básico para empezar con una tienda de objetos. Lo ideal es que los objetos en sí no se modifiquen, solo se lean o se agreguen a los depósitos. 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.

Los mejores emuladores de consola de juegos para Linux
Este artículo enumerará el software de emulación de consola de juegos más popular disponible para Linux. La emulación es una capa de compatibilidad de...
Las mejores distribuciones de Linux para juegos en 2021
El sistema operativo Linux ha recorrido un largo camino desde su apariencia original, simple y basada en servidor. Este sistema operativo ha mejorado ...
Cómo capturar y transmitir su sesión de juego en Linux
En el pasado, los juegos solo se consideraban un pasatiempo, pero con el tiempo la industria del juego experimentó un gran crecimiento en términos de ...