S3-хранилище

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

Сервер управления проверяет наличие бакета из конфигурации. Если бакет отсутствует в S3, он будет автоматически создан с заданными параметрами.

Директория для хранения данных MinIO должна:

  • Монтироваться отдельным разделом, чтобы исключить риск переполнения корневого раздела и отказа системы.

  • Быть пустой на момент первого запуска сервера MinIO.

MinIO уже установлен

Если у вас уже установлен MinIO (например, при развертывании Хранилища телеметрии), то дополнительные действия не требуются.

Для работы с MinIO:

  • Перейдите по ссылке формата:

    http://ip:9001 # IP-адрес хоста указывается в явном виде # Значения username, password аналогичны указанным в файле конфигурации /opt/storage/box_infra/files/services/secrets/minio.yaml

MinIO не установлен

Если у вас отсутствует MinIO, выполните действия по установке и настройке ниже.

Чтобы установить S3-хранилище MinIO:

  1. Установите необходимые пакеты:

    wget https://dl.min.io/server/minio/release/linux-amd64/minio cp minio /usr/local/bin/ chmod +x /usr/local/bin/minio mkdir -p /data/minio/
  2. Создайте и заполните конфигурационный файл: /etc/default/minio.

    Используйте параметры:

    # ROOT_USER: имя пользователя будет использоваться для аутентификации при доступе к серверу MinIO # ROOT_PASSWORD: пароль будет использоваться для аутентификации при доступе к серверу MinIO # MINIO_VOLUMES: путь к каталогу, который будет использоваться MinIO для хранения объектов и данных. # MINIO_OPTS: --console-address ip:9001 указывает, что веб-консоль MinIO будет доступна по тому же IP-адресу на порту 9001. Это позволяет администратору управлять сервером через веб-интерфейс. --address ip:9000 указывает, что сервер MinIO будет слушать на IP-адресе и порту 9000 для API MinIO. # Root user for the server. MINIO_ROOT_USER=admin # Root secret for the server. MINIO_ROOT_PASSWORD=P@ssw0rd # Volume to be used for Minio server. MINIO_VOLUMES="/data/minio/" # Use if you want to run Minio on a custom port. MINIO_OPTS="--address ip_host:9000 --console-address ip_host:9001"
  3. Создайте пользователя с необходимыми правами:

    useradd -s /sbin/nologin -d /minio minio sudo chmod 755 /usr/local/bin/minio sudo chown minio:minio /usr/local/bin/minio sudo chown minio:minio /etc/default/minio sudo chown minio:minio /data/minio/
  4. Создайте системный файл службы: /etc/systemd/system/minio.service.

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

    Используйте параметры:

    [Unit] Description=Minio Documentation=https://docs.minio.io Wants=network-online.target After=network-online.target AssertFileIsExecutable=/usr/local/bin/minio [Service] WorkingDirectory=/usr/local/ #User=minio #Group=minio EnvironmentFile=-/etc/default/minio ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi" ExecStart=/usr/local/bin/minio server --address ip_host:9000 $MINIO_OPTS $MINIO_VOLUMES # Let systemd restart this service always Restart=always # Specifies the maximum file descriptor number that can be opened by this process LimitNOFILE=65536 # Disable timeout logic and wait until process is stopped TimeoutStopSec=infinity SendSIGKILL=no [Install] WantedBy=multi-user.target # Built for ${project.name}-${project.version} (${project.name})
  5. Запустите службу MinIO:

    systemctl daemon-reload systemctl enable minio.service systemctl start minio.service systemctl status minio.service
  6. После запуска вы можете подключиться к веб-интерфейсу MinIO по ссылке вида:

    http://ip:9001 #ip, username, password аналогичны указанным в файле конфигурации /etc/default/minio

При возникновении дополнительных вопросов используйте официальную документацию MinIO (eng).