Montar S3 MinIO en un servidor
Cuando el minio está activo y funcionando, procederemos a crear un bucket como en el ejemplo que se llama s3bucket.
Ahora vamos a ver como montarlo en una ruta /mnt de nuestro servidor para usarlo como sistema de almacenamiento.
Instalar el cliente S3
Vamos a usar el cliente S3 de Amazon en nuestro servidor. Para ello nos lo descargamos
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
Ahora si no lo tenemos, instalamos las utilidades de archivos zip
apt install zip
Y descomprimimos
unzip awscliv2.zip
Ejecutamos la instalación
./aws/install
Y configuramos el cliente de S3
aws configure
Nos pedirá el access key y la clave de nuestro bucket
AWS Access Key ID:
AWS Secret Access Key:
Default region name [None]:
Default output format [None]:
Una vez configurado, ajustaremos la configuración de compatibilidad
aws configure set default.s3.signature_version s3v4
Para comprobar, ejecutaremos un ls en nuestro bucket, al que previamente le habremos subido desde la interfaz web de MinIO un archivo de prueba
root:#aws --endpoint-url http://s3.tecnocratica.net:9000 s3 ls
2023-10-11 18:50:49 prueba.txt
root:#
Instalación de fuse para S3
Instalaremos S3 con fuse para poder usar el sistema de archivos de nuestro bucket
apt install s3fs
Ahora para conectar a nuestro bucket, crearemos un fichero de texto con el Access Key y el Secret Key en el formato siguiente: accesskey:secretkey
echo k4COvmy9tY4AKjsi0FBk:nuW4UQoPHQdt7LmSCp1hpC4jLTOcIUjgeSkierZq > pass.txt
Cambiaremos permisos por seguridad
chmod 600 pass.txt
Montar el bucket de S3
Creamos una carpeta por ejemplo /mnt/s3bucket
mkdir /mnt/s3bucket
Montamos el bucket
El comando para montar es s3fs
Usaremos los siguientes modificadores
/mnt/s3bucket la carpeta donde montaremos el bucket
-o
Bajo estas directivas añadiremos las opciones.
-o bucket=s3bucket
-o passwd_file=pass.txt
-o use_path_request_style
Esta opción es muy importante para usar el estilo de ficheros que usamos normalmente en Linux
-o host=http://s3.tecnocratica.net:9000
El nombre del host al que nos conectaremos
El comando quedaría así
s3fs /mnt/s3bucket -o bucket=s3bucket -o passwd_file=pass.txt -o use_path_request_style -o host=http://s3.tecnocratica.net:9000
Ahora podemos comprobar con un df-h
root@eduardo:# df -h
Filesystem Size Used Avail Use% Mounted on
udev 3.9G 0 3.9G 0% /dev
tmpfs 794M 736K 793M 1% /run
/dev/mapper/pbs-root 17G 2.4G 14G 16% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
copias 39G 33M 39G 1% /mnt/datastore/copias
tmpfs 794M 0 794M 0% /run/user/0
s3fs 16E 0 16E 0% /mnt/s3bucket
Comprobaciones
Si no aparece el punto de montaje, podemos hacer debug añadiendo opciones al comando
s3fs /mnt/s3bucket -o bucket=s3bucket -o passwd_file=pass.txt -o use_path_request_style -o host=http://s3.tecnocratica.net:9000 -o dbglevel=info -f -o curldbg
Esto nos mostrará todos los mensajes de la conexión a fin de depurar
El vídeo explicativo del proceso, lo puedes ver en nuestro canal de Youtube.