Получение артефактов установки | On‑Premise | 2GIS Documentation
On‑Premise
Личный кабинет

Получение артефактов установки

  1. Убедитесь, что выполнена подготовка к установке.

  2. Соберите необходимые данные, полученные на предыдущем шаге:

    Объект Значение Как получить значение
    Лицензия на программный комплекс 2ГИС DEMO-KEY-DGCTL-AAAAAA-BBBBBB См. Подготовка к установке

Этот хост будет обслуживать реестр Docker. Хост должен быть доступен в публичной сети, см. Подготовка сетевой инфраструктуры.

Чтобы настроить хост:

  1. Установите операционную систему: см. список поддерживаемых операционных систем.

  2. Установите реестр Docker: см. список поддерживаемых версий и требования к размеру реестра.

    Реестр должен быть доступен по адресу https://docker.example.com:5000/.

  3. Настройте аутентификацию в реестре по имени пользователя и паролю.

    Пример:

    • Имя пользователя: registry
    • Пароль: DOCKERregistryP@ssW0rd

Этот хост будет обслуживать S3-совместимое хранилище артефактов установки. Хост должен быть доступен в публичной сети, см. Подготовка сетевой инфраструктуры.

Чтобы настроить хост:

  1. Установите операционную систему: см. список поддерживаемых операционных систем.

  2. Установите подходящее для ваших задач S3-совместимое хранилище. Рекомендуется использовать Ceph: см. список поддерживаемых версий и требования к размеру хранилища.

    Хранилище должно быть доступно по адресу https://artifacts.example.com:443/.

  3. В установленном хранилище создайте бакет onpremise-artifacts нужного размера.

  4. Назначьте этому бакету сервисный аккаунт с правами на чтение и запись.

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

    Пример:

    • Идентификатор ключа: AKIAIOSFODNN7EXAMPLE
    • Секрет ключа: wJalrXUtnFEMIK7MDENGbPxRfiCYEXAMPLEKEY

Этот хост будет обслуживать утилиту 2GIS CLI. Хост должен быть доступен в публичной сети, см. Подготовка сетевой инфраструктуры.

Чтобы настроить хост:

  1. Установите операционную систему: см. список поддерживаемых операционных систем.

  2. Установите Docker Engine: см. список поддерживаемых версий.

  3. Организуйте доступ с этого хоста к сервисам, настроенным ранее:

    • https://docker.example.com:5000/
    • https://artifacts.example.com:443/
  1. Зайдите по SSH на хост example.com.

  2. Создайте конфигурационный файл dgctl-config.yaml. Подробное описание доступных параметров см. в описании конфигурационного файла 2GIS CLI.

    dgctl-config.yaml
    key: DEMO-KEY-DGCTL-AAAAAA-BBBBBB
    log-format: json
    
    storage:
        type: s3
    
        host: artifacts.example.com:443
        bucket: onpremise-artifacts
        access-key: AKIAIOSFODNN7EXAMPLE
        secret-key: wJalrXUtnFEMIK7MDENGbPxRfiCYEXAMPLEKEY
    
    docker:
        registry:
            username: registry
            password: DOCKERregistryP@ssW0rd
            server-address: https://docker.example.com:5000
            image-prefix: /
    
  3. Выполните команду для запуска утилиты 2GIS CLI:

    docker run --rm \
        -v $(pwd)/dgctl-config.yaml:/dgctl-config.yaml \
        -v /mnt/dgctl-source:/dgctl-source \
        -v /var/run/docker.sock:/var/run/docker.sock \
        -v $(pwd)/values:/values \
        --user $(id -u):$(id -g) \
        2gis/dgctl:latest \
        pull --config=/dgctl-config.yaml --version=1.32.0 --apps-to-registry --generate-values
    

    Загрузка артефактов установки может занять длительное время. Когда процесс завершится, в консольном выводе команды будет указан путь к файлу манифеста. Пример: manifests/1640661259.json.

    При использовании флага --generate-values файл с параметрами конфигурации general.yaml будет сгенерирован и размещён в локальной директории, которая указана в аргументе -v <путь>:/values (в примере: -v $(pwd)/values:/values). Если не указать путь, файл удалится после запуска утилиты.

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

Ресурс Хост в публичной сети Хост-зеркало в приватной сети
Реестр Docker docker.example.com docker.storage.example.local
S3-совместимое хранилище артефактов установки artifacts.example.com artifacts.storage.example.local

Для зеркал в приватной сети эндпоинты будут отличаться от эндпоинтов в публичной сети:

Пример:

  • Эндпоинт зеркала реестра: docker.storage.example.local:5000
  • Эндпоинт зеркала хранилища: artifacts.storage.example.local:443

Этот секрет нужен, чтобы Helm, с помощью которого устанавливаются сервисы программного комплекса 2ГИС, мог получить доступ к Docker-образам, которые находятся в реестре. Без такого секрета любая операция, связанная с реестром, завершится неудачей.

Пример:

kubectl create secret docker-registry onpremise-registry-creds \
    --docker-server=docker.storage.example.local:5000 \
    --docker-username=registry \
    --docker-password=DOCKERregistryP@ssW0rd

Что дальше?