Установка
Online-установка с использованием Docker-образа
|
ПРИМЕЧАНИЕ
|
Для установки 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и устанавливает подключение к внешней базе данных. Все данные контейнера будут храниться в именованном томе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 |
Параметры для подключения к базе данных:
|
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. Возможные значения:
|
MAINTENANCE_MODE |
Флаг, указывающий на запуск контейнера ADCM в режиме обслуживания. В этом режиме компоненты ADCM не запускаются, что позволяет выполнять операции по миграции секретов. Возможные значения:
|
CONSUL_URL |
URL сервера Consul. Указывается в формате: |
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. Необязательная переменная. Значение по умолчанию — |
CONSUL_HEALTH_CHECK_TIMEOUT |
Максимальное время ожидания ответа при HTTP-проверке состояния бэкенд-сервера ADCM. Значение по умолчанию — |
CONSUL_HEALTH_CHECK_TTL |
Время жизни (Time-to-Live, TTL) результата проверки состояния для Celery Worker и задач в Consul. Значение по умолчанию — |
CONSUL_DEREGISTER_CRITICAL_SERVICE_AFTER |
Время ожидания перед удалением сервиса из реестра Consul, если его состояние остается |
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 |
Тип хранилища секретов. Укажите |
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 |
Путь до файла сертификата клиента в случае использования 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— ограничивают возможности контейнера и снижают риск получения дополнительных привилегий.
Offline-установка (доступно в Enterprise Edition)
При использовании версии Enterprise дополнительно доступна offline-установка ADCM. Она подходит для развертывания системы на хостах без доступа к Интернету.
Offline-установка ADCM включает следующие шаги:
-
Запросите у команды поддержки Arenadata архив с расширением sh.xz, который содержит специальный установочный shell-скрипт.
-
Создайте директорию на хосте, где должен быть развернут ADCM, и разместите в ней полученный архив.
-
Распакуйте архив в созданной директории любым из доступных способов.
ПРИМЕЧАНИЕВыполнение команды может занять некоторое время. Пожалуйста, дождитесь ее завершения. -
Загрузите Docker-образ в локальное хранилище с помощью полученного скрипта:
$ sudo bash <script_name> unpack_adcmгде
<script_name>— полное имя скрипта с расширением (например, adcm_2.5.0.sh).Пример результата успешной обработки команды:
Loaded image: hub.arenadata.io/adcm/adcm:2.5.0
-
Создайте и запустите новый Docker-контейнер на базе загруженного Docker-образа. Для хранения данных вы можете использовать именованный том (named volume) или bind mount (например, если планируете настроить логирование, ротацию логов или HTTPS):
ВАЖНОВыбранный способ хранения данных должен оставаться неизменным при последующих обновлениях ADCM. Смена способа хранения без предварительного резервного копирования и восстановления приведет к потере данных.-
Именованный том:
$ 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:
ПРИМЕЧАНИЕПри использовании bind mount (например, каталога на хосте /opt/adcm) перед запуском контейнера убедитесь, что каталог создан и на него назначены права владельца
10001:10001:$ sudo mkdir -p /opt/adcm && 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>
-
Проверка установки
Проверка статуса 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
Для изменения пароля требуется выполнить следующие действия:
-
Откройте профиль текущего пользователя в левом навигационном меню.
-
Введите текущий пароль в поле Current password.
-
Укажите новый пароль в поле New password.
-
Подтвердите новый пароль в поле Confirm password.
-
Нажмите Save.
Изменение пароля пользователя admin
Установка URL ADCM
Для успешного обмена данными между ADCM и развернутыми с его помощью кластерами важно корректное определение внешнего адреса ADCM. В дальнейшем этот адрес будет использоваться для отправки в ADCM статусов кластерных компонентов. Для указания URL ADCM используется переменная окружения DEFAULT_ADCM_URL при создании контейнера ADCM. Если переменная не была указана, необходимо установить URL вручную в веб-интерфейсе ADCM. Для этого выполните шаги:
-
Выберите пункт Settings в левом навигационном меню.
-
Раскройте узел Global Options в дереве конфигурационных настроек.
Страница Settings -
Введите необходимое значение непосредственно в текстовое поле ADCM’s URL.
-
Нажмите Save для сохранения внесенных изменений.
Сохранение URL ADCM