Установка ADCM

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

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

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

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

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

  • Операционная система версии CentOS 7/RHEL 7/Alt Linux SP 8/Astra Linux SE 1.7 Орел. Обратите внимание, что архивные версии не поддерживаются и не тестируются.

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

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

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

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

    ВАЖНО

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

    • CPU: 4 ядра CPU;

    • RAM: 16 ГБ;

    • HDD: 50 ГБ.

Также перед началом установки вам нужно отредактировать файл /etc/sudoers, чтобы впоследствии пользователь, выполняющий установку ADCM, обладал необходимыми правами. Для этого выполните команду:

$ sudo vi /etc/sudoers

В этом файле необходимо удалить символ # в начале строки WHEEL_USERS ALL=(ALL) ALL. Чтобы сохранить это изменение и вернуться в терминал, нажмите Esc, после чего наберите :wq либо :wq!.

Установка Docker

ВНИМАНИЕ

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

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

  • YUM

  • APT

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

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

    $ sudo yum install -y yum-utils docker device-mapper-persistent-data lvm2
  3. Запустите Docker:

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

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

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

    $ sudo apt-get install docker-engine
  3. Запустите Docker:

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

    $ sudo systemctl enable docker

Отключение SELinux (опционально)

Для долговременного отключения 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, требуется его остановка. Можно использовать команду:

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

    Обратите внимание, что до выпуска 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 hub.arenadata.io/adcm/adcm:<version> -e LOG_LEVEL="INFO" -e DEFAULT_ADCM_URL="http://10.92.40.40:8000/"
Переменные окружения
Имя Описание

DEFAULT_ADCM_URL

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

LOG_LEVEL

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

  • DEBUG

  • INFO

  • WARNING

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

  • CRITICAL

DB_HOST

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

DB_PORT

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

DB_USER

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

DB_NAME

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

DB_PASS

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

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 порте развернутого контейнера. Для проверки этого выполните команды:

  • 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 до нужной версии необходимо выполнить шаги:

  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.

    Обратите внимание, что до выпуска 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 чтобы сообщить о ней