Установка ADCM

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

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

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

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

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

  • Одна из приведенных ниже операционных систем (обратите внимание, что архивные версии не поддерживаются и не тестируются):

    • Ubuntu 22.04

    • CentOS 7

    • RHEL 7

    • Alt Linux SP 8

    • Astra Linux SE 1.7 Орел

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

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

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

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

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

    ВАЖНО

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

    • CPU: 4 ядра CPU;

    • RAM: 16 ГБ;

    • HDD: 50 ГБ.

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

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

  • CentOS 7/RHEL 7/РЕД ОС 7.3/Alt Linux SP 8

  • Ubuntu 22.04/Astra Linux SE 1.7 Орел

$ sudo usermod -aG wheel <user>

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

$ sudo usermod -aG sudo <user>

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

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

    $ sudo vi /etc/sudoers

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

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

  • Ubuntu 22.04/Astra Linux SE 1.7 Орел

  • Alt Linux SP 8

## 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/RHEL 7

  • Ubuntu 22.04

  • Alt Linux SP 8

  • Astra Linux SE 1.7 Орел

  • РЕД ОС 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. Обновите все программные пакеты, в том числе пакеты для добавленного Docker-репозитория:

    $ 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:

    $ sudo apt-get install ca-certificates curl net-tools

    где:

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

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

    • net-tools — пакет для управления сетевой подсистемой ядра Linux, в частности для запуска команды netstat.

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

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

    $ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
  4. Добавьте Docker-репозиторий:

    $ echo "deb [arch=amd64] https://download.docker.com/linux/debian stretch stable" | sudo tee -a /etc/apt/sources.list
  5. Обновите все программные пакеты, в том числе пакеты для добавленного Docker-репозитория:

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

    $ sudo apt install docker-ce docker-ce-cli containerd.io

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

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

    $ sudo systemctl start docker
  8. Включите 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 или RHEL 7.

Для долговременного отключения 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.

Остановка firewall

Если на хосте используется сервис 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

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

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

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

Для установки 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. Все данные контейнера будут храниться в директории /opt/adcm/.

    $ sudo docker create --name adcm -p 8000:8000 -v /opt/adcm:/adcm/data hub.arenadata.io/adcm/adcm:<version>

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

    $ sudo docker create --name adcm -p 8000:8000 -v /opt/adcm:/adcm/data:Z hub.arenadata.io/adcm/adcm:<version>

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

$ sudo docker create --name adcm -p 8000:8000 -v /opt/adcm:/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.
Переменные окружения
Имя Описание

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

DB_HOST

Имя или IP-адрес хоста, на котором развернута внешняя БД PostgreSQL. Дополнительную информацию по переменным DB_HOST, DB_PORT, DB_USER, DB_NAME, DB_PASS, DB_OPTIONS можно получить в статье Настройка ADCM для использования внешней базы данных

DB_PORT

Номер TCP-порта для подключения к PostgreSQL

DB_USER

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

DB_NAME

Название базы данных PostgreSQL

DB_PASS

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

DB_OPTIONS

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

MIGRATION_MODE

Флаг, указывающий на использование режима миграции — переноса базы данных ADCM с SQLite на PostgreSQL. Дополнительную информацию можно получить в статье Миграция ADCM. Возможные значения:

  • 0 — режим миграции выключен;

  • 1 — режим миграции включен.

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

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

  • Запуск ADCM.

    $ sudo docker start adcm
  • Остановка ADCM.

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

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

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

Шаг 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 его web-интерфейс должен стать доступным на 8000 порте развернутого контейнера.

Для операционной системы Ubuntu 22.04 предварительно установите пакет для запуска команды 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>

Проверка web-интерфейса 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 вручную в web-интерфейсе ADCM. Для этого выполните шаги:

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

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

  3. Нажмите на значение поля ADCM’s URL.

    Страница Settings
    Страница Settings
  4. В открывшемся окне измените значение ADCM’s URL и нажмите Apply.

    Редактирование URL ADCM
    Редактирование URL ADCM
  5. Нажмите Save для сохранения внесенных изменений.

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

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

ВНИМАНИЕ
  • Перед выполнением обновления рекомендуется сделать бэкап данных ADCM. Дополнительную информацию можно получить в статье Backup & Restore.

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

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

Для обновления ADCM до нужной версии необходимо выполнить шаги:

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

    $ sudo docker stop adcm
  2. Удалите Docker-контейнер adcm.

    $ sudo docker container rm adcm
  3. Загрузите из 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.

  4. Создайте новый Docker-контейнер на базе загруженного образа.

    $ sudo docker create --name adcm -p 8000:8000 -v /opt/adcm:/adcm/data hub.arenadata.io/adcm/adcm:<version>
  5. Запустите новый Docker-контейнер adcm.

    $ sudo docker start adcm
ВАЖНО
Если вы используете ADCM с внешней базой данных, Docker-контейнер нужно запускать с соответствующими переменными окружения.
Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней