Как настроить S3-хранилище при помощи MinIO на Debian

MinIO представляет собой свободную реализацию S3-хранилища с открытым исходным кодом, которая предназначена для установки на собственном сервере. Продукт полностью совместим с API Amazon S3 и не требует использования облачных сервисов. Кроме того, работающий на собственном или арендованном ресурсе, MinIO обеспечивает полный контроль над хранящимися на сервере данными. Высокая производительность, простота установки и поддержка стандартных протоколов делают MinIO эффективным решением как для корпоративных, так и для индивидуальных пользователей.

В статье разберём, как установить и настроить S3-хранилище при помощи MinIO на виртуальном выделенном сервере, работающем под управлением операционной системы Debian 12.

Как настроить S3-хранилище при помощи MinIO на Debian 12

Для загрузки бинарного файла MinIO с официальной страницы релизов потребуется утилита wget, которая изначально отсутствует в образе Debian 12. Поэтому, во-первых, установите данную утилиту при помощи пакетного менеджера APT:

$ sudo apt install wget

Для загрузки бинарного файла MinIO перейдите в домашний каталог:

$ cd ~

Затем, используя утилиту wget, запустите загрузку файла:

$ wget https://dl.min.io/server/minio/release/linux-amd64/minio

Следующей командой в директории /opt/ создайте рабочий каталог MinIO, а также директорию для конфигурационных файлов внутри него и каталог, который будет использоваться для хранения объектов:

$ sudo mkdir -p /opt/minio/{data,config}

В созданный рабочий каталог MinIO переместите загруженный бинарный файл:

$ sudo mv minio /opt/minio/

После чего сделайте бинарный файл исполняемым:

$ sudo chmod +x /opt/minio/minio

В конфигурационном каталоге создайте файл окружения. В нём будут находиться настройки, задаваемые при помощи переменных окружения.

$ sudo nano /opt/minio/config/minio.env

Скопируйте в файл следующие строки:

MINIO_ROOT_USER=minio_user
MINIO_ROOT_PASSWORD=MinIO_P@ssw0rd
MINIO_VOLUMES="/opt/minio/data"
MINIO_OPTS="--console-address :9001"

Конкретно здесь:

  • MINIO_ROOT_USER – параметр, содержащий логин административной учётной записи веб-панели MinIO;
  • MINIO_ROOT_PASSWORD – параметр, содержащий пароль этой учётной записи;
  • MINIO_VOLUMES – параметр, содержащий полный путь к каталогу, который будет использоваться для хранения данных;
  • MINIO_OPTS – параметр, содержащий дополнительные опции запуска MinIO (в данном случае – это номер порта, через который будет доступна веб-панель).

По окончании редактирования закройте файл с сохранением внесённых изменений.

Как настроить работу MinIO в качестве системной службы

Чтобы настраиваемое S3-хранилище было доступно всегда, необходимо обеспечить работу MinIO в качестве системной службы. Для этого на данном этапе создайте в системе новую учётную запись. Под её именем будет работать служба MinIO.

$ sudo useradd --system --no-create-home --shell /usr/sbin/nologin minio

В данном случае команда useradd содержит следующие параметры:

  • --system – параметр, означающий создание именно системной учётной записи, предназначенной для работы со службами и демонами;
  • --no-create-home – параметр, который позволяет не создавать домашний каталог для нового пользователя;
  • --shell /usr/sbin/nologin – опция, которая означает, что новому пользователю будет запрещено интерактивное подключение к системе;
  • minio – имя новой учётной записи.

После создания нового пользователя необходимо дать полные права на чтение, запись и выполнение на файлы и директории внутри рабочего каталога MinIO. Для чего смените владельца этих файлов и директорий на пользователя и группу minio:

$ sudo chown -R minio:minio /opt/minio

Создание в системе новой службы фактически заключается в создании юнит-файла, в котором описаны основные её настройки. Поэтому следующей командой создайте юнит-файл для службы MinIO:

$ sudo nano /etc/systemd/system/minio.service

В файл скопируйте следующий текст:

[Unit]
Description=MinIO Object Store
Wants=network-online.target
After=network-online.target

[Service]
User=minio
Group=minio
EnvironmentFile=/opt/minio/config/minio.env
ExecStart=/opt/minio/minio server $MINIO_VOLUMES $MINIO_OPTS
Restart=always
LimitNOFILE=65536
ProtectHome=yes
ProtectSystem=full
PrivateTmp=yes

[Install]
WantedBy=multi-user.target

Сохраните изменения, закройте файл и перезапустите конфигурацию системы инициализации:

$ sudo systemctl daemon-reload

После чего установите новую службу в автозагрузку с одновременным её стартом:

$ sudo systemctl enable --now minio

Чтобы убедиться, что запуск новой службы прошёл успешно, проверьте её текущее состояние:

$ systemctl status minio

Вывод команды не должен содержать каких-либо сообщений об ошибках.

Вывод текущего состояния службы MniIO

Подключение к веб-панели MinIO

В файле окружения, созданном ранее, указано, что веб-панель должна работать через TCP-порт 9001. Следовательно, чтобы подключиться к веб-панели, необходимо открыть доступ к серверу по порту 9001. Чтобы это сделать, в брандмауэр UFW добавьте разрешающее правило для данного порта:

$ sudo ufw allow 9001/tcp

Затем откройте браузер и попробуйте подключиться к веб-панели по адресу вида http://X.X.X.X:9001. Вместо X.X.X.X используйте IP-адрес вашего VPS.

Подключение к веб-панели MinIO - Как настроить S3 MinIO на Debian

Для подключения используйте логин и пароль администратора, указанные в файле окружения.

Чтобы получить возможность взаимодействия с MinIO через API, необходимо также открыть доступ к серверу через TCP-порт 9000, используемый для этого по умолчанию:

$ sudo ufw allow 9000/tcp

Поскольку API в MinIO полностью совместим с Amazon S3 API, любые приложения, библиотеки или утилиты, которые умеют работать с S3, например, rclone, s3cmd, mc и другие, могут использоваться для подключения к MinIO без изменений в коде. Таким образом, MinIO можно интегрировать в сторонние системы и сервисы, просто указав адрес хранилища, а также Access Key и Secret Key аналогичные тем, что используются в AWS S3.

Вам также может понравиться