Установка ADCM

Для развертывания ADCM требуется отдельный хост. Перед началом установки рекомендуем ознакомиться с документацией ADCM.

Этапы установки описаны ниже.

Шаг 1. Предварительные требования

Требования к software и hardware

ADCM поставляется в виде Docker-образа. Для его установки необходимы:

  • Одна из приведенных ниже операционных систем:

    Ubuntu
    • Ubuntu 22.04 LTS

    CentOS
    • CentOS 7.9

    RHEL
    • RHEL 7.9

    • RHEL 9

    ALT Linux
    • ALT Linux 8.4 SP

    • ALT Linux 10.2 SP

    Astra Linux SE
    • Astra Linux SE 1.7.6 Орел

    • Astra Linux SE 1.8.4 Орел

    • Astra Linux SE 1.8.6 Орел

    • Astra Linux SE 1.7.6 Воронеж

    • Astra Linux SE 1.8.4 Воронеж

    • Astra Linux SE 1.8.6 Воронеж

    РЕД ОС
    • РЕД ОС 7.3 Сертифицированная редакция

    • РЕД ОС 8.0 Сертифицированная редакция

  • Пользователь с правами sudo.

  • Доступ к официальным репозиториям CentOS Extras и CentOS Base. По умолчанию эти репозитории доступны в операционной системе. Однако, если они были отключены, потребуется их предварительное включение (например, путем редактирования конфигурационного файла в директории /etc/yum.repos.d/).

  • Менеджер программных пакетов YUM/APT.

  • Хост, отвечающий следующим требованиям:

    ВАЖНО

    Системные требования, приведенные ниже, являются минимальными. Целевой сайзинг необходимо рассчитывать исходя из требований вашей организации.

    • CPU: 4 ядра CPU;

    • RAM: 16 ГБ;

    • HDD: 50 ГБ.

ВАЖНО
Начиная с версии ADCM 2.7.0 для установки ADPG без подключения к Интернету и использования его в качестве базы данных ADCM требуется любой Container Registry Client с загруженными образами ADPG, ADCM и ADCM Installer. Установка выполняется с помощью ADCM Installer с указанием URL локального хранилища образов ADCM и ADPG.

Чтобы пользователь обладал необходимыми правами для установки ADCM, выполните действия, описанные ниже.

Предоставьте пользователю привилегии root:

  • CentOS 7.9/RHEL 7.9/РЕД ОС 7.3/ALT Linux 8.4 SP

  • Ubuntu 22.04 LTS/Astra Linux SE 1.7.6 Орел

$ sudo usermod -aG wheel <user>

где <user> — имя пользователя.

$ sudo usermod -aG sudo <user>

где <user> — имя пользователя.

Убедитесь, что в файле /etc/sudoers есть запись, указанная ниже в зависимости от используемой операционной системы, с помощью следующей команды:

$ sudo vi /etc/sudoers

Чтобы вернуться в терминал, нажмите Esc, введите :q! и нажмите Enter.

  • CentOS 7.9/RHEL 7.9/РЕД ОС 7.3

  • Ubuntu 22.04 LTS/Astra Linux SE 1.7.6 Орел

  • ALT Linux 8.4 SP

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL
# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL
## Uncomment to allow members of group wheel to execute any command
WHEEL_USERS ALL=(ALL:ALL) ALL

Установка Docker

ВНИМАНИЕ

Установка Docker с официального сайта не рекомендуется. Вместо этого используйте официальные репозитории дистрибутива Linux. Репозитории, предоставляемые разработчиками операционных систем, как правило, более стабильны и безопасны.

Ниже приведены шаги, необходимые для установки Docker, на примере нескольких поддерживаемых в ADCM операционных систем. Для других версий операционных систем, отличных от указанных во вкладках, шаги могут отличаться.

  • CentOS 7.9/RHEL 7.9

  • Ubuntu 22.04 LTS

  • ALT Linux 8.4 SP

  • Astra Linux SE 1.7.6 Орел

  • РЕД ОС 7.3

  1. Обновите все программные пакеты, установленные в системе:

    $ sudo yum update -y
  2. Установите пакеты, необходимые для Docker:

    $ sudo yum install -y yum-utils docker device-mapper-persistent-data lvm2

    где:

    • yum-utils — пакет, который предоставляет утилиту yum-config-manager;

    • device-mapper-persistent-data и lvm2 — пакеты, необходимые драйверу хранилища devicemapper.

  3. Запустите Docker:

    $ sudo systemctl start docker
  4. Включите Docker в качестве системного сервиса:

    $ sudo systemctl enable docker
  1. Обновите индекс пакетов:

    $ sudo apt-get update
  2. Установите пакеты, необходимые для Docker:

    $ sudo apt-get install ca-certificates curl

    где:

    • ca-certificates — пакет корневых сертификатов;

    • curl — пакет для работы с веб-ресурсами.

    При выполнении команды подтвердите увеличение объема занятого дискового пространства.

  3. Добавьте GPG-ключ для Docker-репозитория:

    $ sudo install -m 0755 -d /etc/apt/keyrings
    $ sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
    $ sudo chmod a+r /etc/apt/keyrings/docker.asc
  4. Добавьте Docker-репозиторий:

    $ echo \
    "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
    $(. /etc/os-release && echo "jammy") stable" | \
    sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  5. Обновите индекс пакетов:

    $ sudo apt-get update
  6. Установите Docker Engine:

    $ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

    При выполнении команды подтвердите увеличение объема занятого дискового пространства.

  7. Запустите Docker:

    $ sudo systemctl start docker
  8. Включите Docker в качестве системного сервиса:

    $ sudo systemctl enable docker
  1. Обновите индекс пакетов:

    $ sudo apt-get update
  2. Установите Docker Engine:

    $ sudo apt-get install docker-engine

    При выполнении команды подтвердите увеличение объема занятого дискового пространства.

  3. Запустите и включите Docker в качестве системного сервиса:

    $ sudo systemctl enable --now docker
  1. Обновите индекс пакетов:

    $ sudo apt-get update
  2. Установите Docker Engine из репозитория операционной системы:

    $ sudo apt-get install docker.io

    При выполнении команды подтвердите увеличение объема занятого дискового пространства.

  3. Запустите Docker:

    $ sudo systemctl start docker
  4. Включите Docker в качестве системного сервиса:

    $ sudo systemctl enable docker
  1. Установите Docker Engine:

    $ sudo dnf install docker-ce docker-ce-cli

    При выполнении команды подтвердите увеличение объема занятого дискового пространства.

  2. Запустите и включите Docker в качестве системного сервиса:

    $ sudo systemctl enable docker --now

Отключение SELinux

ПРИМЕЧАНИЕ
Отключение системы безопасности SELinux необходимо только в случае использования операционной системы CentOS 7.9 или RHEL 7.9.

Для долговременного отключения SELinux следует прописать SELINUX=disabled в конфигурационном файле /etc/selinux/config и перезагрузить систему.

Файл может быть изменен с помощью редактора vi (или vim):

$ sudo vi /etc/selinux/config

Содержимое обновленного файла:

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing - SELinux security policy is enforced.
#       permissive - SELinux prints warnings instead of enforcing.
#       disabled - SELinux is fully disabled.
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
#       targeted - Only targeted network daemons are protected.
#       strict - Full SELinux protection.
SELINUXTYPE=targeted

Кроме этого, доступно временное отключение SELinux с помощью следующей команды:

$ sudo setenforce 0

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

ВНИМАНИЕ

Не забудьте перезагрузить хост после отключения SELinux.

Остановка firewalld

Если на хосте используется сервис firewalld, требуется его остановка.

Перед остановкой firewalld убедитесь, что он установлен, запущен и включен, выполнив команду:

$ sudo systemctl status firewalld

Пример результата выполнения команды:

● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2024-12-02 10:02:57 UTC; 3min 25s ago
     Docs: man:firewalld(1)
 Main PID: 3023 (firewalld)
    Tasks: 2
   Memory: 22.8M
   CGroup: /system.slice/firewalld.service
           └─3023 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid

Остановите firewalld с помощью команды:

$ sudo systemctl stop firewalld

Альтернативный вариант — отключить применение правил к сетевым пакетам при помощи команды disable:

$ sudo systemctl disable firewalld

Настройка доступа к Docker CLI без прав root

Для настройки доступа к Docker CLI без использования прав root необходимо создать группу пользователей docker (если она еще не существует) и добавить текущего пользователя в эту группу с определенными правами:

$ sudo groupadd docker
$ sudo usermod -a -G docker $USER

После запуска команд требуется перезайти в систему под текущим пользователем.

Шаг 2. Установка ADCM

ПРИМЕЧАНИЕ
  • ADCM требует PostgreSQL, который можно настроить как внешнюю базу данных или развернуть как встроенную базу данных с помощью ADCM Installer. Для получения дополнительной информации о настройке PostgreSQL см. статью Подключение к внешней базе данных.

  • Начиная с версии ADCM 2.5.0 минимальная требуемая версия PostgreSQL — 14.

  • Для просмотра полного списка доступных образов можно обратиться к репозиторию ADCM на Docker Hub.

  • Все данные ADCM сохраняются в папке /adcm/data внутри Docker-контейнера. Во избежание потерь данных рекомендуется примонтировать к контейнеру том (Docker Volume) с последующей настройкой его бэкапов.

  • Если вы планируете настроить логирование, ротацию логов или HTTPS, смонтируйте директорию /opt/adcm с хоста в контейнер (bind mount).

Для установки ADCM выполните следующие действия:

  1. Скачайте Docker-образ из Arenadata Docker Registry:

    $ sudo docker pull hub.arenadata.io/adcm/adcm:<version>

    где <version> — это версия Docker-образа в одном из следующих форматов:

    • <major>.<minor>.<patch> — если необходим конкретный патч ADCM. Пример: 2.0.0.

    • <major>.<minor> — если необходим последний патч в рамках выбранной версии ADCM. Пример: 2.0.

    ВАЖНО
    • latest использовался для ранних версий ADCM и начиная с версии 2.0.0 больше не поддерживается.

    • До выпуска ADCM 2.0.0 для версионирования использовался следующий формат: YYYY.MM.DD.HH.

  2. Создайте и запустите Docker-контейнер на основе загруженного образа:

    ПРИМЕЧАНИЕ
    Приведенная ниже команда создает и запускает контейнер с ADCM на порте 8000 и устанавливает подключение к внешней базе данных. Все данные контейнера будут храниться в именованном томе adcm-data. Описание переменных окружения приведено в таблице ниже.
    $ sudo docker run \
        --name adcm \
        -p 8000:8000 \
        -v adcm-data:/adcm/data \
        -e DB_HOST="<DATABASE_HOSTNAME_OR_IP_ADDRESS>" \
        -e DB_PORT="<DATABASE_TCP_PORT>" \
        -e DB_USER="<DATABASE_USERNAME>" \
        -e DB_NAME="<DATABASE_NAME>" \
        -e DB_PASS="<DATABASE_USER_PASSWORD>" \
        -e DB_OPTIONS="<DATABASE_OPTIONS>" \
        hub.arenadata.io/adcm/adcm:<version>

    Если используется bind mount и требуется запустить ADCM с включенным SELinux, при создании и запуске Docker-контейнера необходимо указать опцию :Z в параметре, содержащем имя каталога данных:

    $ sudo docker run \
        --name adcm \
        -p 8000:8000 \
        -v /opt/adcm:/adcm/data:Z \
        hub.arenadata.io/adcm/adcm:<version>
    ПРИМЕЧАНИЕ

    При использовании bind mount (например, каталога на хосте /opt/adcm) перед запуском контейнера убедитесь, что каталог создан и на него назначены права владельца 10001:10001:

    $ sudo mkdir -p /opt/adcm && sudo chown -R 10001:10001 /opt/adcm

    Опционально при создании и запуске контейнера можно указать переменные окружения, перечисленные ниже. Каждая переменная указывается в формате -e <name>="<value>". Пример:

    $ sudo docker run \
        --name adcm \
        -p 8000:8000 \
        -v adcm-data:/adcm/data \
        -e LOG_LEVEL="INFO" \
        hub.arenadata.io/adcm/adcm:<version>
    ПРИМЕЧАНИЕ
    Специальные переменные окружения, такие как STATUS_LOG_LEVEL, ADCM_LOG_LEVEL, AUDIT_LOG_LEVEL, LDAP_LOG_LEVEL, BACKGROUND_TASKS_LOG_LEVEL и TASK_RUNNER_LOG_LEVEL, являются более приоритетными, чем переменная окружения LOG_LEVEL.
Переменные окружения
Имя Описание

DB_HOST

Имя или IP-адрес хоста, на котором развернута база данных

DB_PORT

Номер TCP-порта для подключения к базе данных

DB_USER

Имя пользователя для подключения к базе данных

DB_NAME

Имя базы данных

DB_PASS

Пароль пользователя для подключения к базе данных

DB_OPTIONS

Параметры для подключения к базе данных:

  • sslmode — флаг, используемый для установления SSL-соединения. Возможные значения:

    • disable — установить только соединение без использования SSL.

    • allow — попытаться установить соединение без использования SSL. Если не удастся — попытаться установить SSL-соединение.

    • prefer (по умолчанию) — попытаться установить SSL-соединение. Если не удастся — попытаться установить соединение без использования SSL.

    • require — попытаться установить только SSL-соединение. Если присутствует файл корневого сертификата удостоверяющего центра (Certificate Authority, CA) — проверить сертификат так же, как если бы было указано verify-ca.

    • verify-ca — попытаться установить только SSL-соединение и проверить, что сертификат сервера выдан доверенным удостоверяющим центром.

    • verify-full — попытаться установить только SSL-соединение и проверить, что сертификат сервера выдан доверенным удостоверяющим центром и запрашиваемое имя хоста сервера совпадает с указанным в сертификате.

  • sslcert — расположение файла SSL-сертификата клиента. Этот параметр игнорируется, если соединение устанавливается без SSL.

  • sslkey — расположение секретного ключа, используемого для клиентского сертификата. Этот параметр игнорируется, если соединение устанавливается без SSL.

  • sslrootcert — расположение файла, содержащего сертификат(ы) центра сертификации SSL. Если файл существует, сертификат сервера будет проверен одним из этих центров сертификации. Вы также можете указать специальное значение системы — в этом случае будут загружены доверенные корневые сертификаты системы. Точные местоположения этих корневых сертификатов зависят от реализации SSL и платформы.

DEFAULT_ADCM_URL

URL хоста, на котором разворачивается контейнер ADCM. Указывается в формате: http://<IP>:8000/. Если переменная не указана при создании контейнера, URL необходимо будет заполнить вручную в поле ADCM’s URL на странице Settings

LOG_LEVEL

Уровень логирования для всех типов логов. Возможные значения:

  • DEBUG

  • INFO

  • WARNING

  • ERROR (значение по умолчанию)

  • CRITICAL

STATUS_LOG_LEVEL

Уровень логирования для status.log. Возможные значения:

  • DEBUG

  • INFO

  • WARNING

  • ERROR

  • CRITICAL

ADCM_LOG_LEVEL

Уровень логирования для adcm.log и adcm_debug.log. Возможные значения:

  • DEBUG

  • INFO

  • WARNING

  • ERROR

  • CRITICAL

AUDIT_LOG_LEVEL

Уровень логирования для audit.log. Возможные значения:

  • DEBUG

  • INFO (значение по умолчанию)

  • WARNING

  • ERROR

  • CRITICAL

LDAP_LOG_LEVEL

Уровень логирования для ldap.log. Возможные значения:

  • DEBUG

  • INFO

  • WARNING

  • ERROR

  • CRITICAL

BACKGROUND_TASKS_LOG_LEVEL

Уровень логирования для cron_task.log. Возможные значения:

  • DEBUG

  • INFO

  • WARNING

  • ERROR

  • CRITICAL

TASK_RUNNER_LOG_LEVEL

Уровень логирования для task_runner.err. Возможные значения:

  • DEBUG

  • INFO

  • WARNING

  • ERROR

  • CRITICAL

MAINTENANCE_MODE

Флаг, указывающий на запуск контейнера ADCM в режиме обслуживания. В этом режиме компоненты ADCM не запускаются, что позволяет выполнять операции по миграции секретов. Возможные значения:

  • 0 — режим обслуживания отключен (значение по умолчанию);

  • 1 — режим обслуживания включен.

CONSUL_URL

URL сервера Consul. Указывается в формате: http://<IP>:8500/

CONSUL_DATACENTER

Datacenter Consul. Если значение переменной не указано, то будет использовано значение, указанное в Consul по умолчанию

CONSUL_CACERT_FILE

Путь до файла сертификата удостоверяющего центра (Certificate Authority, CA) в случае включенного шифрования в Consul

CONSUL_CLIENT_CERT_FILE

Путь до файла сертификата клиента в случае включенного шифрования в Consul

CONSUL_CLIENT_KEY_FILE

Путь до файла с секретным ключом клиента в случае включенного шифрования в Consul

CONSUL_ACL_TOKEN_FILE

Токен ACL (Access Control List) для аутентификации в Consul (если в Consul включены ACL). Необязательная переменная

CONSUL_HEALTH_CHECK_INTERVAL

Интервал HTTP-проверки состояния (health check) бэкенд-сервера (Backend Server) ADCM. Необязательная переменная. Значение по умолчанию — 30s

CONSUL_HEALTH_CHECK_TIMEOUT

Максимальное время ожидания ответа при HTTP-проверке состояния бэкенд-сервера ADCM. Значение по умолчанию — 10s

CONSUL_HEALTH_CHECK_TTL

Время жизни (Time-to-Live, TTL) результата проверки состояния для Celery Worker и задач в Consul. Значение по умолчанию — 30s

CONSUL_DEREGISTER_CRITICAL_SERVICE_AFTER

Время ожидания перед удалением сервиса из реестра Consul, если его состояние остается critical. Необязательная переменная. Значение по умолчанию — 5m

SCHEDULER_JOB_LAUNCH_POLL_INTERVAL

Интервал опроса планировщиком задач (Job Scheduler) базы данных на наличие новых задач

SCHEDULER_JOB_MONITOR_POLL_INTERVAL

Интервал мониторинга (опроса состояния) активных задач планировщиком задач

SCHEDULER_JOB_TERMINATION_POLL_INTERVAL

Интервал проверки задач, которые должны быть завершены

SCHEDULER_JOB_INACTIVITY_THRESHOLD

Максимальное время неактивности задачи, по истечении которого она помечается как зависшая

SCHEDULER_JOB_EXECUTION_ENVIRONMENT

Среда выполнения задач. Возможные значения:

SECRET_BACKEND

Тип хранилища секретов. Укажите VaultBackend для использования Vault. Если значение переменной не указано, используется файловое хранилище секретов

VAULT_URL

URL сервера Vault (например, https://vault.example.com:8200)

VAULT_MOUNT_POINT

Путь (mount point) в Vault для хранения секретов ADCM

VAULT_TOKEN_FILE

Путь до файла с токеном доступа для аутентификации в Vault

VAULT_NAMESPACE

Пространство имен в Vault. Используется в версии Enterprise для изоляции данных и настроек

VAULT_CA_FILE

Путь до файла сертификата удостоверяющего центра (Certificate Authority, CA) для проверки TLS-соединения с Vault. Если значение переменной не указано, но определены переменные VAULT_CLIENT_CERT_FILE и VAULT_CLIENT_KEY_FILE, то проверка TLS отключается (verify=false)

VAULT_CLIENT_CERT_FILE

Путь до файла сертификата клиента в случае использования TLS-аутентификации в Vault

VAULT_CLIENT_KEY_FILE

Путь до файла с секретным ключом клиента в случае использования TLS-аутентификации в Vault

ПРИМЕЧАНИЕ
Переменные VAULT_* применяются при использовании Vault (SECRET_BACKEND="VaultBackend").

Запуск с усиленными параметрами безопасности

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

$ sudo docker run -d \
    --name adcm \
    --restart=always \
    -p 8000:8000 \
    -v adcm-data:/adcm/data \
    -e DB_HOST="<DATABASE_HOSTNAME_OR_IP_ADDRESS>" \
    -e DB_PORT="<DATABASE_TCP_PORT>" \
    -e DB_USER="<DATABASE_USERNAME>" \
    -e DB_NAME="<DATABASE_NAME>" \
    -e DB_PASS="<DATABASE_USER_PASSWORD>" \
    -e DB_OPTIONS="<DATABASE_OPTIONS>" \
    -e ANSIBLE_REMOTE_TMP="/tmp/.ansible/tmp" \
    --security-opt no-new-privileges:true \
    --cap-drop ALL \
    --read-only \
    --tmpfs /tmp:mode=1777,exec \
    --tmpfs /adcm/run/:uid=10001,gid=10001,mode=0770 \
    hub.arenadata.io/adcm/adcm:<version>

где:

  • -e ANSIBLE_REMOTE_TMP="/tmp/.ansible/tmp" — определяет каталог для временных файлов Ansible на управляемых хостах;

  • --tmpfs /tmp:mode=1777,exec — монтирует каталог контейнера /tmp в оперативную память и разрешает выполнение файлов из этого каталога;

  • --read-only, --cap-drop ALL, --security-opt no-new-privileges:true — ограничивают возможности контейнера и снижают риск получения дополнительных привилегий.

Шаг 3. Запуск ADCM

Поскольку ADCM представляет собой контейнер под управлением Docker, за его запуск и остановку отвечают стандартные Docker-команды:

  • Остановка ADCM.

    $ sudo docker stop adcm
  • Запуск ADCM.

    $ sudo docker start adcm
  • Автозапуск ADCM. Чтобы настроить автоматический запуск Docker-контейнера в случае непредвиденных ошибок, используйте следующую команду.

    $ sudo docker update --restart=on-failure adcm
ПРИМЕЧАНИЕ
  • Дополнительная информация по политикам перезапуска Docker-контейнеров (restart policies) может быть получена из документации Docker.

  • Если для текущего пользователя настроен доступ к Docker CLI без использования прав root, слово sudo в предыдущих командах необязательно.

Процесс запуска контейнера

После запуска контейнера ADCM выполняются следующие действия:

  1. Проверяется наличие обязательных переменных окружения.

  2. Выполняется инициализация секретов при их отсутствии.

  3. Проводится проверка совместимости установленных бандлов с версиями контракта текущей версии ADCM.

  4. К базе данных применяются необходимые миграции.

  5. Запускаются компоненты, входящие в состав основного контейнера ADCM:

    • бэкенд-сервер (Backend Server);

    • статус-сервер (Status Server);

    • Nginx.

Шаг 4. Проверка установки

Проверка статуса Docker-контейнера

Чтобы убедиться в успешной установке Docker-контейнера adcm, выполните следующую команду:

$ sudo docker container ls

Пример результата выполнения команды приведен ниже. Убедитесь, что в столбце STATUS выводится значение Up:

CONTAINER ID        IMAGE                               COMMAND             CREATED             STATUS              PORTS                    NAMES
74b5628146e5        hub.arenadata.io/adcm/adcm:2.0   "/etc/startup.sh"   4 days ago          Up 21 minutes       0.0.0.0:8000->8000/tcp   adcm

Проверка доступности порта 8000

После установки и запуска ADCM его веб-интерфейс должен стать доступным на 8000 порте развернутого контейнера.

Для операционной системы Ubuntu 22.04 LTS предварительно установите пакет для запуска команды netstat:

$ sudo apt-get install net-tools

Для проверки доступности порта выполните команды:

  • netstat — для вывода информации о состоянии порта.

    $ sudo netstat -ntpl | grep 8000

    Пример результата выполнения команды:

    tcp6       0      0 :::8000                 :::*                    LISTEN                                             1514/docker-proxy-c
  • curl — для проверки URL-соединения.

    $ curl http://localhost:8000

    Пример результата выполнения команды:

    <!doctype html>
    <html lang="en">
    <head>
      <meta charset="utf-8">
      <title>Arenadata Cluster Manager</title>
      <base href="/">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <link rel="icon" type="image/x-icon" href="assets/favicon.ico">
    <link rel="stylesheet" href="styles.10db6328264e0907c52f.css"></head>
    <body>
      <app-root></app-root>
    <script src="runtime-es2015.7eb406ed18bf0258cd35.js" type="module"></script><script src="runtime-es5.7eb406ed18bf0258cd35.js" nomodule defer></script><script src="polyfills-es5.2e224d70daec4412d3c2.js" nomodule defer></script><script src="polyfills-es2015.37e0553ac06970d6a5b5.js" type="module"></script><script src="main-es2015.39851da0ebf9ed6fec45.js" type="module"></script><script src="main-es5.39851da0ebf9ed6fec45.js" nomodule defer></script></body>
    </html>

Проверка веб-интерфейса ADCM

При установке ADCM автоматически создается пользователь с административными правами. Чтобы зайти в ADCM, используйте следующие учетные данные:

  • User: admin

  • Password: admin

Вход в ADCM
Вход в ADCM

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

  1. Откройте профиль текущего пользователя в левом навигационном меню.

  2. Введите текущий пароль в поле Current password.

  3. Укажите новый пароль в поле New password.

  4. Подтвердите новый пароль в поле Confirm password.

  5. Нажмите Save.

    Изменение пароля пользователя admin
    Изменение пароля пользователя admin

Установка URL ADCM

Для успешного обмена данными между ADCM и развернутыми с его помощью кластерами важно корректное определение внешнего адреса ADCM. В дальнейшем этот адрес будет использоваться для отправки в ADCM статусов кластерных компонентов. Для указания URL ADCM используется переменная окружения DEFAULT_ADCM_URL при создании контейнера ADCM. Если переменная не была указана, необходимо установить URL вручную в веб-интерфейсе ADCM. Для этого выполните шаги:

  1. Выберите пункт Settings в левом навигационном меню.

  2. Раскройте узел Global Options в дереве конфигурационных настроек.

    Страница Settings
    Страница Settings
  3. Введите необходимое значение непосредственно в текстовое поле ADCM’s URL.

  4. Нажмите Save для сохранения внесенных изменений.

    Сохранение URL ADCM
    Сохранение URL ADCM

Шаг 5. Обновление ADCM

ВНИМАНИЕ

Общие рекомендации и ограничения

  • Перед выполнением обновления рекомендуется сделать резервную копию данных ADCM. Дополнительную информацию см. в статье Резервное копирование и восстановление.

  • Понижение версии ADCM не поддерживается.

  • Не рекомендуется обновлять ADCM более чем на 5 минорных версий (см. <minor> в описании формата версионирования ниже).

  • Перед обновлением ADCM до версии 2.7.0 выполните миграцию данных из SQLite в PostgreSQL. Миграцию можно выполнить в ADCM любой версии до 2.6.0 включительно.

Ограничения версий при обновлении

  • Версия 2.10.0 является обязательной для установки и не может быть пропущена. Прямое обновление с версий ниже 2.10.0 до 2.11.0 и выше не поддерживается.

  • Если среди установленных кластеров присутствуют продукты с устаревшей версией контракта, в логах Docker-контейнера отображается предупреждение о наличии неподдерживаемых версий контрактов.

  • Если среди установленных кластеров присутствуют продукты с неподдерживаемой версией контракта, запуск Docker-контейнера прекращается. Такие продукты необходимо обновить до поддерживаемой версии.

ВАЖНО

Версия ADCM 3.0.0 является обязательной для установки и не может быть пропущена при обновлении.

Начиная с версии ADCM 3.0.0 все процессы внутри Docker-контейнера запускаются от имени непривилегированного пользователя adcm (UID/GID 10001) вместо пользователя root.

При обновлении без использования ADCM Installer с версии ADCM ниже 3.0.0 перед первым запуском контейнера с новой версией необходимо изменить владельца каталога /adcm/data. В противном случае Docker-контейнер не сможет получить доступ к существующим данным и завершит работу.

Если для хранения данных используется Docker volume, выполните следующие шаги:

  1. Определите имя Docker volume, смонтированного в каталог /adcm/data:

    $ sudo docker inspect \
        --format='{{range .Mounts}}{{if eq .Type "volume"}}{{.Name}}{{"\n"}}{{end}}{{end}}' \
        adcm

    Команда выведет имя Docker volume. Используйте его вместо <volume_name> в следующей команде.

  2. Измените владельца каталога с данными:

    $ sudo docker run --rm \
        -v <volume_name>:/adcm/data \
        --user 0:0 \
        --entrypoint sh \
        hub.arenadata.io/adcm/adcm:<version> \
        -c 'chown -R 10001:10001 /adcm/data'

    где <version> — версия ADCM, до которой планируется обновление.

Процесс обновления ADCM зависит от способа установки ADCM.

Для обновления ADCM, установленного без использования ADCM Installer, до нужной версии выполните следующие шаги:

  1. Остановите и удалите Docker-контейнер adcm:

    $ sudo docker rm -f adcm
  2. Загрузите из Arenadata Docker Registry необходимый Docker-образ:

    $ sudo docker pull hub.arenadata.io/adcm/adcm:<version>

    где <version> — это версия Docker-образа в одном из следующих форматов:

    • <major>.<minor>.<patch> — если необходим конкретный патч ADCM. Пример: 2.0.0.

    • <major>.<minor> — если необходим последний патч в рамках выбранной версии ADCM. Пример: 2.0.

    ВАЖНО
    • latest использовался для ранних версий ADCM и начиная с версии 2.0.0 больше не поддерживается.

    • До выпуска ADCM 2.0.0 для версионирования использовался следующий формат: YYYY.MM.DD.HH.

  3. Создайте и запустите новый Docker-контейнер на базе загруженного образа, выбрав вариант в зависимости от того, каким образом была установлена предыдущая версия ADCM:

    ВАЖНО
    При обновлении используйте тот же способ хранения данных (bind mount или именованный том), что и при установке. Смена способа хранения без предварительного резервного копирования и восстановления приведет к потере данных.
    • Если ранее использовался именованный том (named volume):

      $ sudo docker run \
          --name adcm \
          -p 8000:8000 \
          -v adcm-data:/adcm/data \
          -e DB_HOST="<DATABASE_HOSTNAME_OR_IP_ADDRESS>" \
          -e DB_PORT="<DATABASE_TCP_PORT>" \
          -e DB_USER="<DATABASE_USERNAME>" \
          -e DB_NAME="<DATABASE_NAME>" \
          -e DB_PASS="<DATABASE_USER_PASSWORD>" \
          -e DB_OPTIONS="<DATABASE_OPTIONS>" \
          hub.arenadata.io/adcm/adcm:<version>
    • Если ранее использовался bind mount:

      ПРИМЕЧАНИЕ

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

      $ sudo chown -R 10001:10001 /opt/adcm
      $ sudo docker run \
          --name adcm \
          -p 8000:8000 \
          -v /opt/adcm:/adcm/data \
          -e DB_HOST="<DATABASE_HOSTNAME_OR_IP_ADDRESS>" \
          -e DB_PORT="<DATABASE_TCP_PORT>" \
          -e DB_USER="<DATABASE_USERNAME>" \
          -e DB_NAME="<DATABASE_NAME>" \
          -e DB_PASS="<DATABASE_USER_PASSWORD>" \
          -e DB_OPTIONS="<DATABASE_OPTIONS>" \
          hub.arenadata.io/adcm/adcm:<version>
    ПРИМЕЧАНИЕ
    Подробная информация о переменных окружения DB_HOST, DB_PORT, DB_USER, DB_NAME, DB_PASS и DB_OPTIONS приведена в статье Установка.
Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней