Настройка 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
доступны следующие параметры.
Параметр | Описание |
---|---|
sslmode |
Флаг, используемый для установления SSL-соединения. Возможные значения:
|
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"}'
ВАЖНО
|
Используйте -v /opt/adcm:/adcm/data:Z
для SELinux.