Установка ADCM
Для развертывания ADCM требуется отдельный хост. Перед началом установки рекомендуем ознакомиться с документацией ADCM.
Этапы установки описаны ниже.
Шаг 1. Предварительные требования
Требования к software и hardware
ADCM поставляется в виде Docker-образа. Для его установки необходимы:
- 
Одна из приведенных ниже операционных систем: - 
Ubuntu 22.04 
- 
CentOS 7 
- 
RHEL 7 
- 
Alt Linux SP 8 
- 
Alt Linux SP 10.2 
- 
Astra Linux SE 1.7 Орел 
- 
Astra Linux 1.7.6 Воронеж 
- 
РЕД ОС 7.3 Сертифицированная редакция 
 
- 
- 
Пользователь с правами 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:
- 
Убедитесь, что в файле /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. | 
Остановка 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 -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>Если требуется запустить 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.
| Имя | Описание | 
|---|---|
| DB_HOST | Имя или IP-адрес хоста, на котором развернута база данных | 
| DB_PORT | Номер TCP-порта для подключения к базе данных | 
| DB_USER | Имя пользователя для подключения к базе данных | 
| DB_NAME | Имя базы данных | 
| DB_PASS | Пароль пользователя для подключения к базе данных | 
| DB_OPTIONS | Параметры для подключения к базе данных: 
 | 
| 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. Возможные значения: 
 | 
| 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 Изменение пароля пользователя admin
Установка URL ADCM
Для успешного обмена данными между ADCM и развернутыми с его помощью кластерами важно корректное определение внешнего адреса ADCM. В дальнейшем этот адрес будет использоваться для отправки в ADCM статусов кластерных компонентов. Для указания URL ADCM используется переменная окружения DEFAULT_ADCM_URL при создании контейнера ADCM. Если переменная не была указана, необходимо установить URL вручную в web-интерфейсе ADCM. Для этого выполните шаги:
- 
Выберите пункт Settings в левом навигационном меню. 
- 
Раскройте узел Global Options в дереве конфигурационных настроек. 
- 
Нажмите на значение поля ADCM’s URL.  Страница Settings Страница Settings
- 
В открывшемся окне измените значение ADCM’s URL и нажмите Apply.  Редактирование URL ADCM Редактирование URL ADCM
- 
Нажмите Save для сохранения внесенных изменений.  Сохранение URL ADCM Сохранение URL ADCM
Шаг 5. Обновление ADCM
| ВНИМАНИЕ 
 | 
Online-обновление
Для обновления 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 -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приведена в статье Установка.
- 
Запустите новый Docker-контейнер adcm:$ sudo docker start adcm
Offline-обновление
Если хосты не имеют доступ к Интернету, то доступно offline-обновление ADCM.
Чтобы выполнить offline-обновление ADCM до нужной версии, сделайте следующее:
- 
Остановите Docker-контейнер adcm:$ sudo docker stop adcm
- 
Удалите Docker-контейнер adcm:$ sudo docker container rm 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-образ в файл с расширением .tar. $ sudo docker save -o <file_name> hub.arenadata.io/adcm/adcm:<version>где <file_name>— имя создаваемого файла с расширением (например, adcm_2.5.0_arenadata.tar).ПРИМЕЧАНИЕВыполнение команды может занять некоторое время. Пожалуйста, дождитесь ее завершения.
- 
Скопируйте сохраненный файл с текущего хоста на хост без доступа к Интернету любым из доступных способов. ВАЖНОУбедитесь в наличии настроенного доступа к хостам и необходимых прав доступа к файлу.
- 
Загрузите Docker-образ из сохраненного файла. $ sudo docker load -i <file_path>где <file_path>— абсолютный путь к сохраненному файлу с Docker-образом.Пример результата успешного выполнения команды: Loaded image: hub.arenadata.io/adcm/adcm:2.5.0 
- 
Создайте новый Docker-контейнер на базе загруженного образа: $ sudo docker create --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приведена в статье Установка.
- 
Запустите новый Docker-контейнер adcm:$ sudo docker start adcm