Установка 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, выполните следующее:
-
Предоставьте пользователю привилегии
root
:
-
Убедитесь, что в файле
/etc/sudoers
есть запись, указанная ниже в зависимости от используемой операционной системы, с помощью следующей команды:$ sudo vi /etc/sudoers
Чтобы вернуться в терминал, нажмите
Esc
, введите:q!
и нажмитеEnter
.
## 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 операционных систем. Для других версий операционных систем, отличных от указанных во вкладках, шаги могут отличаться.
-
Обновите все программные пакеты, установленные в системе:
$ sudo yum update -y
-
Установите пакеты, необходимые для Docker:
$ sudo yum install -y yum-utils docker device-mapper-persistent-data lvm2
где:
-
yum-utils
— пакет, который предоставляет утилиту yum-config-manager; -
device-mapper-persistent-data
иlvm2
— пакеты, необходимые драйверу хранилища devicemapper.
-
-
Запустите Docker:
$ sudo systemctl start docker
-
Включите Docker в качестве системного сервиса:
$ sudo systemctl enable docker
-
Обновите все программные пакеты, установленные в системе:
$ sudo apt-get update
-
Установите пакеты, необходимые для Docker:
$ sudo apt-get install ca-certificates curl
где:
-
ca-certificates
— пакет корневых сертификатов; -
curl
— пакет для работы с веб-ресурсами.
При выполнении команды подтвердите увеличение объема занятого дискового пространства.
-
-
Добавьте 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
-
Добавьте 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
-
Обновите все программные пакеты, в том числе пакеты для добавленного Docker-репозитория:
$ sudo apt-get update
-
Установите Docker Engine:
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
При выполнении команды подтвердите увеличение объема занятого дискового пространства.
-
Запустите Docker:
$ sudo systemctl start docker
-
Включите Docker в качестве системного сервиса:
$ sudo systemctl enable docker
-
Обновите все программные пакеты, установленные в системе:
$ sudo apt-get update
-
Установите Docker Engine:
$ sudo apt-get install docker-engine
При выполнении команды подтвердите увеличение объема занятого дискового пространства.
-
Запустите и включите Docker в качестве системного сервиса:
$ sudo systemctl enable --now docker
-
Обновите все программные пакеты, установленные в системе:
$ sudo apt-get update
-
Установите пакеты, необходимые для Docker:
$ sudo apt-get install ca-certificates curl net-tools
где:
-
ca-certificates
— пакет корневых сертификатов; -
curl
— пакет для работы с веб-ресурсами; -
net-tools
— пакет для управления сетевой подсистемой ядра Linux, в частности для запуска командыnetstat
.
При выполнении команды подтвердите увеличение объема занятого дискового пространства.
-
-
Добавьте GPG-ключ для Docker-репозитория:
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
-
Добавьте Docker-репозиторий:
$ echo "deb [arch=amd64] https://download.docker.com/linux/debian stretch stable" | sudo tee -a /etc/apt/sources.list
-
Обновите все программные пакеты, в том числе пакеты для добавленного Docker-репозитория:
$ sudo apt-get update
-
Установите Docker Engine:
$ sudo apt install docker-ce docker-ce-cli containerd.io
При выполнении команды подтвердите увеличение объема занятого дискового пространства.
-
Запустите Docker:
$ sudo systemctl start docker
-
Включите Docker в качестве системного сервиса:
$ sudo systemctl enable docker
-
Установите Docker Engine:
$ sudo dnf install docker-ce docker-ce-cli
При выполнении команды подтвердите увеличение объема занятого дискового пространства.
-
Запустите и включите 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
ПРИМЕЧАНИЕ
|
Для установки ADCM необходимо выполнить следующие команды:
-
Скачайте 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
.
-
-
Создайте 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. Указывается в формате: |
LOG_LEVEL |
Уровень логирования для всех типов логов. Возможные значения:
|
STATUS_LOG_LEVEL |
Уровень логирования для status.log. Возможные значения:
|
ADCM_LOG_LEVEL |
Уровень логирования для adcm.log и adcm_debug.log. Возможные значения:
|
AUDIT_LOG_LEVEL |
Уровень логирования для audit.log. Возможные значения:
|
LDAP_LOG_LEVEL |
Уровень логирования для ldap.log. Возможные значения:
|
BACKGROUND_TASKS_LOG_LEVEL |
Уровень логирования для cron_task.log. Возможные значения:
|
TASK_RUNNER_LOG_LEVEL |
Уровень логирования для task_runner.err. Возможные значения:
|
DB_HOST |
Имя или IP-адрес хоста, на котором развернута внешняя БД PostgreSQL. Дополнительную информацию по переменным |
DB_PORT |
Номер TCP-порта для подключения к PostgreSQL |
DB_USER |
Имя пользователя для подключения к PostgreSQL |
DB_NAME |
Название базы данных PostgreSQL |
DB_PASS |
Пароль пользователя для подключения PostgreSQL |
DB_OPTIONS |
Параметры для подключения к внешней базе данных. Дополнительную информацию можно получить в статье Настройка ADCM для использования внешней базы данных |
MIGRATION_MODE |
Флаг, указывающий на использование режима миграции — переноса базы данных ADCM с SQLite на PostgreSQL. Дополнительную информацию можно получить в статье Миграция ADCM. Возможные значения:
|
Шаг 3. Запуск ADCM
Поскольку ADCM представляет собой контейнер под управлением Docker, за его запуск и установку отвечают стандартные Docker-команды:
-
Запуск ADCM.
$ sudo docker start adcm
-
Остановка ADCM.
$ sudo docker stop adcm
-
Автозапуск ADCM. Чтобы настроить автоматический запуск Docker-контейнера в случае непредвиденных ошибок, используйте следующую команду.
$ sudo docker update --restart=on-failure adcm
ПРИМЕЧАНИЕ
|
Шаг 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
Для изменения пароля требуется выполнить следующие действия:
-
Откройте профиль текущего пользователя в левом навигационном меню.
-
Введите текущий пароль в поле Current password.
-
Укажите новый пароль в поле New password.
-
Подтвердите новый пароль в поле Confirm password.
-
Нажмите Save.
Изменение пароля пользователя admin
Установка URL ADCM
Для успешного обмена данными между ADCM и развернутыми с его помощью кластерами важно корректное определение внешнего адреса ADCM. В дальнейшем этот адрес будет использоваться для отправки в ADCM статусов кластерных компонентов. Для указания URL ADCM используется переменная окружения DEFAULT_ADCM_URL
при создании контейнера ADCM. Если переменная не была указана, необходимо установить URL вручную в web-интерфейсе ADCM. Для этого выполните шаги:
-
Выберите пункт Settings в левом навигационном меню.
-
Раскройте узел Global Options в дереве конфигурационных настроек.
-
Нажмите на значение поля ADCM’s URL.
Страница Settings -
В открывшемся окне измените значение ADCM’s URL и нажмите Apply.
Редактирование URL ADCM -
Нажмите Save для сохранения внесенных изменений.
Сохранение URL ADCM
Шаг 5. Обновление ADCM
ВНИМАНИЕ
|
Для обновления ADCM до нужной версии необходимо выполнить шаги:
-
Остановите Docker-контейнер
adcm
.$ sudo docker stop adcm
-
Удалите Docker-контейнер
adcm
.$ sudo docker container rm adcm
-
Загрузите из 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
.
-
-
Создайте новый Docker-контейнер на базе загруженного образа.
$ sudo docker create --name adcm -p 8000:8000 -v /opt/adcm:/adcm/data hub.arenadata.io/adcm/adcm:<version>
-
Запустите новый Docker-контейнер
adcm
.$ sudo docker start adcm
ВАЖНО
Если вы используете ADCM с внешней базой данных, Docker-контейнер нужно запускать с соответствующими переменными окружения.
|