В статье рассмотрим пример установки SeaweedFS в качестве объектного хранилища S3 для программного комплекса ELMA365. Статья охватывает установку SeaweedFS в конфигурации с одним узлом и одним диском (SNSD). Такая конфигурация не обеспечивает дополнительной надёжности или доступности, помимо того, что реализовано в базовом томе хранилища (RAID, LVM, ZFS и т. д.).
Перед установкой ознакомьтесь с информацией:
- о лицензировании SeaweedFS в официальной документации;
- о поддерживаемых версиях SeaweedFS и других требованиях в статье «Системные требования ELMA365 On‑Premises»;
- о вариантах организации инфраструктуры для работы системы ELMA365 в статьях «ELMA365 On‑Premises Standard» и «ELMA365 On‑Premises Enterprise».
Установка состоит из нескольких этапов:
- Установка Docker и Docker Compose.
- Установка SeaweedFS.
- Установка MC Client.
- Запуск сервиса SeaweedFS.
- Настройка подключения к SeaweedFS.
- Создание бакета.
- Подключение к SeaweedFS.
Шаг 1. Установка Docker и Docker Compose
Для установки SeaweedFS потребуются следующие инструменты:
- Docker — установите согласно инструкциям для вашей операционной системы на официальном сайте;
- Docker Compose — установите согласно инструкциям для вашей операционной системы на официальном сайте.
Шаг 2. Установка SeaweedFS
- Создайте каталог для монтирования диска:
mkdir -p /opt/seaweedfs/data/
- Создайте файл docker-compose.yml:
version: "3.9"
services:
seaweedfs:
image: chrislusf/seaweedfs:4.06
command: >
server
-ip.bind=0.0.0.0
-s3
-s3.config=/etc/seaweedfs/s3.json
-s3.port=8333
ports:
- "8333:8333"
volumes:
- /opt/seaweedfs/data/:/data
- /opt/seaweedfs/s3.json:/etc/seaweedfs/s3.json:ro
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9333/cluster/status"
interval: 30s
timeout: 10s
retries: 3
- Создайте файл /opt/seaweedfs/s3.json:
{
"identities": [
{
"name": "admin",
"credentials": [
{
"accessKey": "elma365user",
"secretKey": "SecretPassword"
}
],
"actions": ["Admin", "Read", "Write"]
}
]
}
Настройка включения TLS/SSL в SeaweedFS
version: "3.9"
|
Шаг 3. Установка MC Client
Загрузите последний стабильный binary‑файл SeaweedFS Client и установите его в систему:
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mс
sudo mv mc /usr/local/bin/
Шаг 4. Запуск сервиса SeaweedFS
Запустите манифест:
docker-compose -f docker-compose.yml up -d
Шаг 5. Настройка подключения к SeaweedFS
Создайте алиас для SeaweedFS:
/usr/local/bin/mc alias set seaweedfs http://SeaweedFS.your_domain:9000 elma365user SecretPassword
Шаг 6. Создание бакета
Важно: наименование бакетов в S3 должно соответствовать формату s3elma365*. Для примера в статье используется имя бакета s3elma365, пользователь elma365user и пароль SecretPassword. При настройке задайте эти данные согласно политике безопасности, принятой в вашей организации.
Примеры наименований для бакетов: s3elma365; s3elma365-dev; s3elma365-prod.
Для работы ELMA365 создайте бакет c наименованием s3elma365, используя команду:
/usr/local/bin/mc mb -p seaweedfs/s3elma365 --region=ru-central-1
Создание в S3 бакетов для работы ELMA Bot
Для создания бакетов выполните следующие команды: /usr/local/bin/mc mb -p SeaweedFS/s3elmabot --region=ru-central-1
|
Шаг 7. Подключение к SeaweedFS
Параметры для подключения к SeaweedFS:
- address — seaweedfs.your_domain:9000;
- bucket — s3elma365;
- region — ru-central-1;
- access key ID — elma365user;
- secret access key — SecretPassword;
- upload method — PUT;
- enable SSL — No.
Если SeaweedFS ожидает подключение с использованием TLS/SSL, укажите в параметре enable SSL значение Yes.