Для развертывания магазина приложений с использованием хранилища S3 на существующем кластере Ceph необходимо выполнить следующие действия:

  1. Подготовка серверов управления:
    Включить поддержку магазина приложений в конфигурационных файлах на всех серверах управления ПК СВ, прописав соответствующий драйвер. Для этого: в конфигурационном файле /etc/one/one.d/market.conf скорректировать поле MARKET_MAD, указав следующие аргументы: 
    ARGUMENTS  = "-t 15 -m s3"
    CODE
    где s3 – наименование драйвера.

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

    ARGUMENTS  = "-t 15 -m brest,s3"
    CODE

    где brest и s3 – наименования драйверов магазинов приложений.

  2. Настройка хранилища S3:
    1. Для развертывания хранилища S3 на существующем кластере Ceph необходимо с сервера управления Ceph установить пакет Rados Gateway (rgw) от имени пользователя с именем ceph-adm, выполнив следующую команду:
      sudo ceph-deploy --username=ceph-adm install --rgw <brest1>
      где <brest1> – имя сервера, входящего в кластер Ceph, где ранее был установлен сервис менеджера ceph.
    2. На сервере Ceph запустить сервис rgw командой:
      sudo ceph-deploy --username=ceph-adm rgw create brest1

      По умолчанию запуск сервиса rgw осуществляется на порту 7480.

    3. Для корректной работы сервиса rgw на сервере brest1 требуется наличие у данного сервера роли управления кластером Ceph. Для назначения роли необходимо скопировать на сервер brest1 конфигурационный файл и ключ административного доступа, выполнив команду:
      sudo ceph-deploy --username=ceph-adm admin brest1
    4.  Проверить результат установки rgw на сервере по адресу:  http://<IP_brest1>:7480.
      где:
      • <IP_brest1> – IP-адрес или FQDN сервера, на котором разворачивается rgw;
      • 7480 – порт, используемый сервисом rgw по умолчанию.
        Пример вывода:
        This XML file does not appear to have any style information associated with it. The document tree is shown below.
        <ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
        <Owner>
        <ID>anonymous</ID>
        <DisplayName/>
        </Owner>
        <Buckets/>
        </ListAllMyBucketsResult>
        CODE
    5. Создать пользователя хранилища S3 с сервера brest1, выполнив команду:
      radosgw-admin user create --uid="adminS3" --display-name="adminS3"
      Пример вывода после выполнения команды:
      { "user_id": "adminS3",
        "display_name": "adminS3",
        "email": "",
        "suspended": 0,
        "max_buckets": 1000,
        "subusers": [],
        "keys": [
              { "user": "adminS3",
                "access_key": "1IZK4WUV6KVGB748D4JS",
                "secret_key": "j4C4pAyPdNVJCx0bNwujUP0JM2vU1pGQIcSeyoEm"}],
        "swift_keys": [],
        "caps": [],
        "op_mask": "read, write, delete",
        "default_placement": "",
        "placement_tags": [],
        "bucket_quota": { "enabled": false,
            "max_size_kb": -1,
            "max_objects": -1},
        "user_quota": { "enabled": false,
            "max_size_kb": -1,
            "max_objects": -1},
        "temp_url_keys": []}
      CODE
  3. Добавление магазина S3:
    1. Из вывода, полученного после выполнения команды radosgw-admin user create --uid="adminS3" --display-name="adminS3", скопировать следующие строки:
      "user": "adminS3",
                  "access_key": "1IZK4WUV6KVGB748D4JS",
                  "secret_key": "j4C4pAyPdNVJCx0bNwujUP0JM2vU1pGQIcSeyoEm"
      CODE
    2. Создать конфигурационный файл marketS3.conf командой: 
      nano markets3.conf
    3. В созданный конфигурационный файл добавить скопированные строки. Пример файла конфигурации:
      NAME              = S3CephMarket
      ACCESS_KEY_ID     = "1IZK4WUV6KVGB748D4JS"
      SECRET_ACCESS_KEY = "j4C4pAyPdNVJCx0bNwujUP0JM2vU1pGQIcSeyoEm"
      BUCKET            = "opennebula-market"
      ENDPOINT          = "http://10.177.125.89:7480" ##конечная точка s3##
      FORCE_PATH_STYLE  = "YES"
      MARKET_MAD        = s3
      REGION            = "default"
      SIGNATURE_VERSION = s3
      AWS               = no
      CODE
    4. Из подготовленного конфигурационного файла создать магазин приложений, выполнив команду:
      sudo onemarket create marketS3.conf
    5. Убедиться, что создаваемые образы магазина приложений сохраняются в требуемый пул. Для этого выполнить команду:
      radosgw-admin bucket stats 
      Пример вывода после выполнения команды:

      В данном примере образы помещаются в пул rgw.main, что является настройкой по умолчанию для rgw.

  4. Проверить результат создания магазина приложений во вкладке Магазины приложений ПК СВ: