Настройка внешнего подключения базы данных Redis
Назовите свой проект
- Версия внешнего сервиса должна совпадать с версией, указанной в файле
docker-compose.yml
. - В качестве примера в этой инструкции используется проект с именем
testit
. Вы можете использовать другое название.
При настройке внешней базы данных Redis установите следующий параметр:
appendonly yes
В файле
docker-compose.yml
закомментируйте или удалите секцию с сервисом БД (auth_cache
), который будет заменен на внешний сервис, зависимости от него других контейнеров (все упоминания сервиса БД в блокахdepends_on
), и его вольюм (auth-cache-volume
) в спискеvolumes
в файлеdocker-compose.yml
.В
.env
-файле укажите данные для подключения к внешней БД, гдеexternal-server
— IP или DNS-имя хоста, на котором установлен Redis (без указания протокола и порта).AUTH_CACHE_CONNECTION_STRING=external-server
Перезапустите систему Test IT:
docker compose -f docker-compose.yml --project-name testit up --detach --timeout 120 --remove-orphans
Включение аутентификации в Redis
Добавьте пароль в базу данных Redis.
auth-cache: <...> command: > redis-server --appendonly yes --requirepass "${REDIS_PASSWORD}"
Раскомментируйте в файле
.env
следующую строку:REDIS_PASSWORD=<YOUR_PASSWORD>
Отредактируйте в файле
.env
строкуAUTH_CACHE_CONNECTION_STRING
, добавив в нееpassword=<YOUR_PASSWORD>
, например:AUTH_CACHE_CONNECTION_STRING=auth-cache:6379,password=<YOUR_PASSWORD>
Настройка безопасного соединения
Подготовьте файлы сертификатов — корневой
ca.crt
, а также подписанные с помощью него сертификат и ключ сервераserver.crt
иserver.key
. CN сертификата сервера должен бытьauth-cache
. Названия сертификатов и ключа могут быть любыми.Настройте права пользователя
redis (999)
в файлеserver.key
:chown 999 server.key chgrp 999 server.key chmod 600 server.key
Скопируйте файлы
server.crt
иserver.key
дляauth-cache
в вольюм:server_certs=$(docker inspect testit_auth-cache-tls-volume --format '{{ .Mountpoint }}') cp server.crt ${server_certs}/ cp server.key ${server_certs}/
Скопируйте файл сертификата CA, с помощью которого были выписаны сертификаты серверов, в вольюм
trusted-certificates-volume
:trusted_certs=$(docker inspect testit_trusted-certificates-volume --format '{{ .Mountpoint }}') cp ca.crt ${trusted_certs}/
В файл
docker-compose.yml
:Добавьте в секции
auth-cache
под секциейcommand
следующие строки:auth-cache: <...> command: > <...> --tls-port 6379 --port 0 --tls-cert-file "${REDIS_TLS_CERT_FILE}" --tls-key-file "${REDIS_TLS_KEY_FILE}" --tls-auth-clients no
В файле
.env
отредактируйте строкуAUTH_CACHE_CONNECTION_STRING
, добавивssl=true
:AUTH_CACHE_CONNECTION_STRING=auth-cache:6379,password=<YOUR_PASSWORD>,ssl=true
Раскомментируйте следующие строки и отредактируйте при необходимости:
REDIS_TLS_CERT_FILE=/tls/server.crt REDIS_TLS_KEY_FILE=/tls/server.key