Очередная интересная задача, надо поднять какое-то объектное хранилище S3 и использовать его в качестве кэша для GitLab-ранеров.
Ну и погнали тогда и начнем с установки и запуска minio.
Для начала создаем виртуалку с восьмой CentOS на нашем кластере и дополнительный диск на CEPH-хранилище.

Места под тесты у нас более чем достаточно и получилась вот такая штука.

Запускаем, обновляем и ловим нашу любимую ошибку Could not resolve host: mirrorlist.centos.org, но про это я уже писал и вот вам линк. После базовой настройки нам надо подготовить и подключить диск с хранилищем в каталог /opt/ и последовательность действий будет такая.
# mkfs.xfs /dev/sdb
# blkid
/dev/mapper/cs_centos8-root: UUID="96e6e511-59a2-4e36-97d8-82af7b3592ed" BLOCK_SIZE="512" TYPE="xfs"
/dev/sda2: UUID="wITsG8-KqAM-V2dp-TXfZ-e9YC-tpLA-1suEAJ" TYPE="LVM2_member" PARTUUID="4f87460c-02"
/dev/sda1: UUID="fbf14ef8-ff6f-4fea-a492-9a822f0305a5" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="4f87460c-01"
/dev/sdb: UUID="f983ce34-a67b-4461-bf66-63a2ba936a69" BLOCK_SIZE="512" TYPE="xfs"
/dev/mapper/cs_centos8-swap: UUID="1b221e3d-b6fe-4d01-8245-567bb1dba628" TYPE="swap"
Добавляем запись в fstab.
UUID=f983ce34-a67b-4461-bf66-63a2ba936a69 /opt xfs defaults 0 0
Монтируем каталог.
# systemctl daemon-reload
# mount /opt/
Скачиваем Minio с официального сайта.
Для Centos.
# dnf install https://dl.min.io/server/minio/release/linux-amd64/minio-20250120144907.0.0-1.x86_64.rpm
# MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=password minio server /mnt/data --console-address ":9001"
# dnf install https://dl.min.io/client/mc/release/linux-amd64/mcli-20250117232550.0.0-1.x86_64.rpm
# mcli alias set myminio/ http://MINIO-SERVER MYUSER MYPASSWORD
Для Ubuntu.
wget https://dl.min.io/server/minio/release/linux-amd64/minio_20250120144907.0.0_amd64.deb
dpkg -i minio_20250120144907.0.0_amd64.deb
MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=password minio server /mnt/data --console-address ":9001"
# wget https://dl.min.io/client/mc/release/linux-amd64/mcli_20250117232550.0.0_amd64.deb
# dpkg -i mcli_20250117232550.0.0_amd64.deb
# mcli alias set myminio/ http://MINIO-SERVER MYUSER MYPASSWORD
Проводим тестовый запуск.
# MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=password /usr/local/bin/minio server /opt/minio --console-address ":9001
Создаем пользователя от имени которого будем запускать Minio.
# useradd miniio
# mkdir -p /opt/minio/
# chown -R miniio:miniio /opt/minio/
SystemD сервисный файл /etc/systemd/system/minio.service
[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio
[Service]
WorkingDirectory=/usr/local
User=miniio
Group=miniio
ProtectProc=invisible
Environment="MINIO_ROOT_USER=admin"
Environment="MINIO_ROOT_PASSWORD=password"
ExecStart=/usr/local/bin/minio server /opt/minio --console-address ":9001"
# Let systemd restart this service always
Restart=always
# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536
# Specifies the maximum number of threads this process can create
TasksMax=infinity
# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no
[Install]
WantedBy=multi-user.target
Активируем и запускаем.
# systemctl daemon-reload
# systemctl enable minio.service
# systemctl start minio.service
# systemctl status minio.service
Пробуем подключиться к web-интерфейсу и в моем случае адрес будет http://10.54.110.100:9001.
