Настройка ADCM для использования внешней базы данных

ADCM поддерживает операции с внешними базами данных. В частности, поддерживаются базы данных PostgreSQL. Если внешняя база данных не задана, то по умолчанию используется встроенная база данных SQlite.

ВАЖНО
Для использования в продуктовой среде рекомендуется база данных PostgreSQL. База данных SQLite предназначена для экспериментальных целей.

Для использования целевой базы данных PostgreSQL должны быть выполнены следующие условия:

  • Пользователь, база данных и пароль пользователя должны быть созданы (DATABASE_USERNAME, DATABASE_NAME, DATABASE_USER_PASSWORD в примере ниже).

  • Пользователь должен обладать правами owner для целевой базы данных PostgreSQL.

CREATE USER <DATABASE_USERNAME> with encrypted password '<DATABASE_USER_PASSWORD>';
CREATE DATABASE <DATABASE_NAME> OWNER <DATABASE_USERNAME>;

Запуск ADCM с базой данных PostgreSQL:

$ sudo docker run -d --restart=always -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>" --name adcm hub.arenadata.io/adcm/adcm:<version>
  -e DB_OPTIONS="<DATABASE_OPTIONS>"

где <version> — это версия Docker-образа в одном из следующих форматов:

  • <major>.<minor>.<patch> — если необходим конкретный патч ADCM. Пример: 2.0.0.

  • <major>.<minor> — если необходим последний патч в рамках выбранной версии ADCM. Пример: 2.0.

Вы можете использовать DB_OPTIONS для установления SSL-подключения к базе. Для DB_OPTIONS доступны следующие параметры.

Параметры DB_OPTIONS
Параметр Описание

sslmode

Флаг, используемый для установления SSL-соединения. Возможные значения:

  • disable — установить только соединение без использования SSL.

  • allow — попытка установить соединение без использования SSL; если не удастся, попытаться установить SSL-соединение.

  • prefer (по умолчанию) — попытка установить SSL-соединение; если не удастся, попытаться установить соединение без использования SSL.

  • require — попытка установить только SSL-соединение. Если присутствует файл корневого сертификата (CA), проверить сертификат так же, как если бы было указано verify-ca.

  • verify-ca — попытка установить только SSL-соединение и проверить, что сертификат сервера выдан доверенным CA.

  • verify-full — попытка установить только SSL-соединение, проверить, что сертификат сервера выдан доверенным CA и что запрашиваемое имя хоста сервера совпадает с указанным в сертификате.

sslcert

Расположение файла SSL-сертификата клиента. Этот параметр игнорируется, если SSL-соединение не установлено

sslkey

Расположение секретного ключа, используемого для клиентского сертификата. Этот параметр игнорируется, если SSL-соединение не установлено

sslrootcert

Расположение файла, содержащего сертификат(ы) центра сертификации SSL. Если файл существует, сертификат сервера будет проверен одним из этих центров сертификации. Вы также можете указать специальное значение системы — в этом случае будут загружены доверенные корневые сертификаты системы. Точные местоположения этих корневых сертификатов зависят от реализации SSL и платформы

Подготовьте файлы SSL-сертификата и секретного ключа и поместите их в <data_volume>/conf/ssl/. Затем укажите параметры DB_OPTIONS в формате JSON:

DB_OPTIONS='{"sslmode": "verify-full", "sslcert": "/adcm/data/conf/ssl/client.crt", "sslkey": "/adcm/data/conf/ssl/client.key", "sslrootcert": "/adcm/data/conf/ssl/server.crt"}'
ВАЖНО
  • latest использовался для ранних версий ADCM и, начиная с версии 2.0.0, больше не поддерживается.

  • До выпуска ADCM 2.0.0 для версионирования использовался следующий формат: YYYY.MM.DD.HH.

Используйте -v /opt/adcm:/adcm/data:Z для SELinux.

Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней