Настройка СУБД PostgreSQL
Поддерживаемые версии PostgreSQL: 13, 15
Мастер установки сервера БД
В консоли сервера БД выполните команду dbserver-pg-setup.sh
для запуски мастера установки.
Ответьте на вопросы мастера, задайте пароль пользователя БД для подключения:
# dbserver-pg-setup.sh
Добро пожаловать в мастер настройки DB Server. Пожалуйста, заполните все поля корректными значениями. Для принятия значений по умолчанию нажимайте ENTER.
Настроить сервер на использование базы данных PostgreSQL? [Y/n]: y
Внимание! Предыдущая конфигурация будет удалена, подтвердите операцию: [Y/n] y
Введите пароль пользователя БД:
Введите (еще раз) пароль пользователя БД:
Для применения новых параметров и перезапуска служб нажмите ENTER []:
После завершения работы мастера на сервере будет развернут инстанс базы данных брокера VDI с именем udsdb
, и создан пользователь PostgreSQL udsdbadm
с правами доступа к этой базе, с заданным в процессе настройки паролем.
Далее, в файле /etc/postgresql/13/main/postgresql.conf
раскомментируйте строку:
listen_addresses = '*'
В файл /etc/postgresql/13/main/pg_hba.conf
разрешите удаленные подключения к БД с брокера VDI, добавив запись с его адресом или подсетью (в примере 10.1.1.0/24
):
# IPv4 remote connections:
host all all 10.1.1.0/24 md5
Для применения новой конфигурации перезапустите службу PostgreSQL:
# systemctl restart postgresql.service
Перенос базы данных
В случае новой установки данный раздел настройки можно пропустить.
Для переноса существующей базы данных PostgreSQL, уже развернутой в составе компонента HOSTVM VDI Брокер, на внешний сервер БД, выполните следующие команды.
В консоли брокера VDI остановите сервисы и создайте резервную копию БД, указав:
имя базы на брокере (по умолчанию
udsdb
)имя файла резервной копии (в примере -
udsdb.bak
)
Команды для брокера версии 3.6
:
# systemctl stop vdi.service vdiweb.service
# su - postgres
$ pg_dump udsdb > /tmp/udsdb.bak
$ exit
Перенесите файл резервной копии на сервер БД, указав:
имя файла резервной копии (в примере -
udsdb.bak
)IP или hostname сервера БД (в примере
dbserver
)
# scp /tmp/udsdb.bak root@dbserver:/tmp/
В консоли сервера БД выполните следующие команды.
Откройте терминальный клиент psql:
# su - postgres
$ psql
Пересоздайте БД брокера (в примере - udsdb
):
postgres=# DROP DATABASE udsdb; CREATE DATABASE udsdb;
postgres=# \q
Импортируйте ранее созданную резервную копию БД:
$ psql -d udsdb -f /tmp/udsdb.bak
$ exit
В файле /etc/postgresql/13/main/postgresql.conf
раскомментируйте строку:
listen_addresses = '*'
В файл /etc/postgresql/13/main/pg_hba.conf
разрешите удаленные подключения к БД с брокера VDI, добавив запись с его адресом или подсетью (в примере 10.1.1.0/24
):
# IPv4 remote connections:
host all all 10.1.1.0/24 md5
Для применения новой конфигурации перезапустите службу PostgreSQL:
# systemctl restart postgresql.service
Переключение брокера VDI на внешний сервер БД
Отредактируйте файл настроек брокера /var/server/server/settings.py
, в блок DATABASES
внесите информацию:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'OPTIONS': {
'isolation_level': 'read committed',
},
'NAME': 'udsdb', # имя БД, по умолчанию udsdb
'USER': 'udsdbadm', # имя пользователя БД, по умолчанию udsdbadm
'PASSWORD': 'password', # пароль пользователя БД, как был задан в мастере установки сервера БД
'HOST': '10.1.1.1', # IP адрес сервера БД, например 10.1.1.1
'PORT': '', # порт сервера БД, оставьте пустым при использовании порта по умолчанию
}
}
Перезапустите службы брокера VDI:
# systemctl restart vdi.service vdiweb.service
Для инициализации базы данных выполните:
# systemctl stop vdi
# cd /var/server
# python3 manage.py migrate
# python3 manage.py createcachetable
# systemctl start vdi
Убедитесь, что портал брокера VDI успешно открывается в браузере.
Дополнительные действия при переносе существующей БД
На портале брокера VDI перейдите в панель администрирования, проверьте наличие данных перенесенной конфигурации (настройки сервис-провайдеров, аутентификаторов, транспортов, сервис-пулов и т.д.).
Удалите файл резервной копии с сервера БД, выполнив команду:
# rm /tmp/udsdb.bak
Удалите файл резервной копии и отключите более не используемый локальный сервис PostgreSQL на брокере VDI, выполнив команды:
# rm /tmp/udsdb.bak
# systemctl stop postgresql.service
# systemctl disable postgresql.service
Шифрование трафика между брокером VDI и СУБД
В файл /etc/postgresql/13/main/pg_hba.conf
внесите соответствующую запись с адресом или подсетью брокера(в примере 10.1.1.0/24
):
# IPv4 remote connections:
hostssl all all 10.1.1.0/24 md5
Для применения новой конфигурации перезапустите службу PostgreSQL:
# systemctl restart postgresql.service
Отредактируйте файл настроек брокера /var/server/server/settings.py
, в блок DATABASES
в секции OPTIONS
внесите запись 'sslmode': 'require',
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'OPTIONS': {
'isolation_level': 'read committed',
'sslmode': 'require',
},
'NAME': 'udsdb', # имя БД, по умолчанию udsdb
'USER': 'udsdbadm', # имя пользователя БД, по умолчанию udsdbadm
'PASSWORD': 'password', # пароль пользователя БД, как был задан в мастере установки сервера БД
'HOST': '10.1.1.1', # IP адрес сервера БД, например 10.1.1.1
'PORT': '', # порт сервера БД, оставьте пустым при использовании порта по умолчанию
}
}
Перезапустите службы брокера VDI:
# systemctl restart vdi.service vdiweb.service
Last updated
Was this helpful?