Продукты Р7
Корпоративный сервер 2024
Корпоративный сервер 2024
Сервер документов
Сервер документов
Редакторы документов
Редакторы документов
Корпоративный сервер 2019
Корпоративный сервер 2019
Графика
Графика
ВКС и мессенджер
ВКС и мессенджер
Мобильные редакторы
Мобильные редакторы
Почтовый сервер
Почтовый сервер
Органайзер
Органайзер
Сервер лицензирования
Сервер лицензирования
Файл-Экспресс
Файл-Экспресс
Аналитика
Аналитика
Дополнительно
Часто задаваемые вопросы
Разработчикам
Интеграции
Новые возможности

Установка отказоустойчивой архитектуры Корпоративного сервера 2024 + Почтовый сервер на РедОС 8

Обновлено: 25.09.26

Инструкция актуальна для версий продукта: 2025.4.6.16449 – 2026.3.6.17475

Актуальная схема

Схема взаимодействия компонентов Корпоративного и Почтового серверов в отказоустойчивой конфигурации

Описание

Архитектура рассчитана на использование одного сервера в качестве основного, а второго — в качестве резервного (с постоянной репликацией). В случае отказа основного сервера предусмотрена возможность ручного переключения на резервный узел с помощью скрипта и изменения IP-адреса, указывающего на основную ноду.

В архитектуре используются следующие компоненты, входящие в состав стандартной установки Корпоративного сервера 2024:

  • PostgreSQL 16.14;
  • RabbitMQ-server 4.2.5;
  • Redis server 8.6.4;
  • GlusterFS 11.1.

Условия эксплуатации

1. Используйте одну доменную A-запись с несколькими IP-адресами (с возможностью включения и отключения IP-адресов) либо изменяйте доменную запись Корпоративного сервера вида *.domain.ru, например:

*.test2.s7-office.site.

Для двух почтовых серверов используются отдельные записи (опционально).

2. В случае если почтовый сервер не нужен, то возможна установка без почтового сервера. Предварительно ознакомьтесь с инструкцией, чтобы исключить почтовый сервер из установки.

Команды, связанные с почтовым сервером, отмечены в статье.

3. При ошибках работы приложений на сервере master потребуется переключение сервера slave в режим master с помощью скрипта.

Технические требования

  • 2 виртуальные машины;
  • файловое хранилище GlusterFS для синхронизации данных;
  • минимальные технические характеристики узлов (для тестирования): от 4 CPU, от 8 ГБ RAM, от 50 ГБ свободного дискового пространства;
  • точные требования для промышленной эксплуатации рассчитываются по обращению в техническую поддержку;
  • отключение SELinux или перевод его в режим permissive для корректной работы сервисов.

1. Установка и настройка сервиса хранения GlusterFS

Файловое хранилище:

  • Для почтового сервера используется каталог /mail;
  • Корпоративный сервер: /var/r7-office/filestorage, /var/r7-office/searchindex;
  • Сервер документов: /var/www/r7-office/Data, /var/lib/r7-office/documentserver/App_Data/cache, /opt/r7-office/java-maker/uploaded-files.
Уточнение

Нет необходимости синхронизировать каталоги временных файлов: filestorage_temp, filestorage_temp_proc.

База данных (БД):

Используется PostgreSQL версии 16 в режиме master-slave.

1.1. Установка и настройка GlusterFS

Добавьте запись в /etc/hosts:

192.168.27.186 gluster1
192.168.26.253 gluster2
Важно

Рекомендуется использовать запись 127.0.0.1 localhost как стандартную и без использования имени сервера, так как в дальнейшем будут добавлены другие записи для работы почтового сервера.

Укажите соответствующее имя (замените домен и IP-адрес сервера на свои). Вместо mx1 можно использовать другое необходимое имя, например mail:

Обратите внимание

Следующие инструкции выполняются на сервере №1.

hostnamectl set-hostname mx1.your-domain.ru
Уточнение

Hostname сервера не совпадает с его доменом.

Например, server.example.com — полное имя домена, а server — его hostname.

Данная запись необходима для почтового сервера.

Без использования почтового сервера возможно задать любое имя сервера.

Укажите соответствующее имя на сервере №2 для почтового сервера (заменить на свой домен):

Обратите внимание

Следующие инструкции выполняются на сервере №2.

hostnamectl set-hostname mx2.your-domain.ru

Добавьте запись в /etc/hosts:

192.168.27.10 mx1.your-domain.ru
192.168.27.36 mx2.your-domain.ru

Укажите имя и IP-адреса ваших серверов.

Обратите внимание

Для корректной установки Корпоративного сервера требуется наличие перевода строки в конце файла /etc/hosts.

Важно

Для применения параметров выполните перезапуск серверов.

Уточнение

Без использования почтового сервера возможно задать любое имя сервера.

1.2. Установка, запуск и добавление GlusterFS в автозагрузку на всех нодах

dnf install -y glusterfs-server
systemctl start glusterd.service
systemctl enable glusterd.service

Чтобы GlusterFS корректно работал и устанавливал соединения между узлами, проверьте используемые порты:

cat /etc/glusterfs/glusterd.vol
Содержимое конфигурационного файла glusterd.vol

Добавьте исключения в firewall, чтобы разрешить необходимые соединения:

sudo firewall-cmd --permanent --add-port=49152-49251/tcp
sudo firewall-cmd --permanent --add-port=24007-24008/tcp
sudo firewall-cmd --reload

После этого GlusterFS сможет корректно устанавливать соединения.

Не имеет значения, какой из узлов вы будете использовать, но в следующем примере команда запускается на gluster1:

gluster peer probe gluster2

Фактически эта команда сообщает gluster1 доверять gluster2 и регистрирует его как часть пула хранения данных.

Если зондирование прошло успешно, отобразится вывод:

peer probe: success

Вы можете проверить связь узлов в любое время с помощью команды:

gluster peer status

При запуске команды с gluster2 отобразится следующий статус:

Number of Peers: 1
Hostname: gluster1
Uuid: 7ecfa2d1-3394-4f15-a1f5-bba484f2bbef
State: Peer in Cluster (Connected)
Важно

Рекомендуется на время установки/настройки отключить firewalld.

На этом этапе два ваших сервера взаимодействуют и готовы к созданию томов хранения друг с другом.

Обратите внимание

Создание томов выполняется на сервере №1.

Для создания тома вы будете использовать команду gluster volume create с таким общим синтаксисом:

# Для почтового сервера:
sudo gluster volume create mail_volume replica 2 gluster{1,2}:/mail_volume force
sudo gluster volume create cddisk-filestorage replica 2 gluster{1,2}:/cddisk-filestorage force
sudo gluster volume create cddisk-searchindex replica 2 gluster{1,2}:/cddisk-searchindex force
sudo gluster volume create ds-data replica 2 gluster{1,2}:/ds-data force
sudo gluster volume create ds-cache replica 2 gluster{1,2}:/ds-cache force
sudo gluster volume create cddisk-javamaker replica 2 gluster{1,2}:/cddisk-javamaker force

Если том был создан успешно, вы увидите следующий вывод:

volume create: mail_volume: success: please start the volume to access data.

На этом этапе ваш том создан, но еще не активирован. Вы можете запустить том и сделать его доступным для использования путем выполнения следующей команды с любого сервера Gluster:

# Для почтового сервера:
sudo gluster volume start mail_volume 
sudo gluster volume start cddisk-filestorage 
sudo gluster volume start cddisk-searchindex 
sudo gluster volume start ds-data 
sudo gluster volume start ds-cache
sudo gluster volume start cddisk-javamaker

Вы получите следующий вывод, если том запущен корректно:

volume start: mail_volume: success.
volume start: cddisk-filestorage: success.
volume start: cddisk-searchindex: success.
volume start: ds-data: success.
volume start: ds-cache: success.
volume start: cddisk-javamaker: success

Затем проверьте, находится ли том в сети. Запустите следующую команду с любого из ваших узлов:

sudo gluster volume status

В результате вы увидите вывод, аналогичный данному:

Status of volume: mail
Gluster process                             TCP Port  RDMA Port  Online  Pid
------------------------------------------------------------------------------
Brick gluster1:/mail                        49152     0          Y       4495
Brick gluster2:/mail                        49152     0          Y       20192
Self-heal Daemon on localhost               N/A       N/A        Y       4518
Self-heal Daemon on gluster2                N/A       N/A        Y       20215

Task Status of Volume mail_volume
------------------------------------------------------------------------------
There are no active volume tasks

Создайте каталог и смонтируйте:

Обратите внимание

Следующие инструкции выполняются на всех серверах (для почтового сервера).

# Для почтового сервера:
mkdir /mail
mkdir -p /var/r7-office/filestorage
mkdir -p /var/r7-office/searchindex
mkdir -p /var/www/r7-office/Data
mkdir -p /var/lib/r7-office/documentserver/App_Data/cache
mkdir -p /opt/r7-office/java-maker/uploaded-files

# Для почтового сервера:
mount.glusterfs localhost:/mail_volume /mail
mount.glusterfs localhost:/cddisk-filestorage /var/r7-office/filestorage
mount.glusterfs localhost:/cddisk-searchindex /var/r7-office/searchindex
mount.glusterfs localhost:/ds-data /var/www/r7-office/Data
mount.glusterfs localhost:/ds-cache /var/lib/r7-office/documentserver/App_Data/cache
mount.glusterfs localhost:/cddisk-javamaker /opt/r7-office/java-maker/uploaded-files

Добавьте в автозагрузку (для почтового сервера):

{
# Для почтового сервера:
echo 'localhost:/mail_volume /mail glusterfs defaults,_netdev,backupvolfile-server=localhost 0 0'
echo 'localhost:/cddisk-filestorage /var/r7-office/filestorage glusterfs defaults,_netdev,backupvolfile-server=localhost 0 0'
echo 'localhost:/cddisk-searchindex /var/r7-office/searchindex glusterfs defaults,_netdev,backupvolfile-server=localhost 0 0'
echo 'localhost:/ds-data /var/www/r7-office/Data glusterfs defaults,_netdev,backupvolfile-server=localhost 0 0'
echo 'localhost:/ds-cache /var/lib/r7-office/documentserver/App_Data/cache glusterfs defaults,_netdev,backupvolfile-server=localhost 0 0'
echo 'localhost:/cddisk-javamaker /opt/r7-office/java-maker/uploaded-files glusterfs defaults,_netdev,backupvolfile-server=localhost 0 0'
} | sudo tee -a /etc/fstab

Добавьте задание для перезапуска GlusterFS в случае перезагрузки или выключения питания:

Обратите внимание

Следующие инструкции выполняются на всех серверах.

Важно

После перезагрузки сервера могут наблюдаться проблемы с синхронизацией GlusterFS. Данный метод решает эту проблему.

echo "@reboot sleep 30 && systemctl restart glusterd.service" | crontab -

Проверка монтирования:

df -h
mount -a

Проверьте корректность синхронизации каталогов между серверами, создавая тестовые файлы или каталоги в монтированных каталогах.

При настройке разрешенных портов рекомендуется проверить все задействованные порты на двух серверах:

ss -tulnp | grep gluster

2. Подготовка к установке почтового сервера (опционально)

2.1. Записи в DNS и необходимые конфигурации

Для почтового сервера необходимо сделать A- и MX-записи в виде:

# MX-записи:

mx1 — 192.168.27.186
mx2 — 192.168.26.253

# А-записи:

smtp — 192.168.27.186, 192.168.26.253
imap — 192.168.27.186, 192.168.26.253

Примеры А-записей:

Примеры DNS-записей A, MX и TXT для почтовых серверов

А также TXT запись:

v=spf1 +mx ~all

Уточнение

TXT-запись v=spf1 +mx ~all указывает, что отправлять почту от имени домена your-domain.ru могут серверы, указанные в MX-записях этого домена. Для остальных серверов применяется мягкий отказ (SoftFail).

Важно

SPF-запись не наследуется на поддомены.

Важно

Для корректной смены ролей master и slave требуется переключить IP-адреса в настройках DNS (отключить IP-адрес узла, переводимого в режим slave, и включить IP-адрес узла, переводимого в режим master).

3. Установка и настройка Базы данных (БД)

Установите следующие пакеты на оба сервера:

dnf install postgresql-server postgresql

3.1. База данных (БД)

Обратите внимание

Следующие инструкции выполняются на всех серверах.

Создайте первичный кластер базы данных:

sudo postgresql-setup --initdb
sudo systemctl enable --now postgresql

Отредактируйте /var/lib/pgsql/data/postgresql.conf:

listen_addresses = 'localhost,ip_srv1,ip_srv2'       # Слушать на адресах
port = 5432                         # Задать порт БД
wal_level = replica             # Включить репликацию
archive_mode = on               # Включить архивирование WAL
archive_command = 'cp %p /var/lib/pgsql/archive/%f'   # Команда для архивирования WAL
max_wal_senders = 5            # Максимальное количество одновременных подключений репликации
hot_standby = on                # Разрешить подключения в режиме hot standby

Где ip_srv1 и ip_srv2 — IP-адреса внутренней сети первого и второго серверов.

Обратите внимание

Следующие инструкции выполняются на всех серверах.

В файле postgresql.conf разрешите логическую репликацию, добавляем строку для прослушивания локального интерфейса:

/var/lib/pgsql/data/pg_hba.conf

Приведите файл к следующему виду:

# Разрешить локальные подключения для всех пользователей
# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
host    all             all             ip_srv1/32       trust
host    all             all             ip_srv2/32       trust

Вместо ip_srv1/32 и ip_srv2/32 укажите IP-адрес двух серверов. Режим trust необходим для установки Корпоративного сервера.

И добавьте строки в конце (для возможности репликации БД):

# Разрешить репликацию с обоих серверов для пользователя replication_user
host    replication     replication_user        ip_srv1/32    md5
host    replication     replication_user        ip_srv2/32    md5

Где ip_srv1/32 и ip_srv2/32 — IP-адреса первого и второго серверов соответственно.

Выполните перезапуск сервиса БД:

sudo systemctl restart postgresql
Обратите внимание

Следующие инструкции выполняются на сервере №1.

После базовой настройки базы данных создайте необходимую структуру БД и пользователей, затем настройте репликацию:

sudo -u postgres psql

В консоли psql выполните следующие команды, подтверждая каждую нажатием Enter:

Важно

Вместо паролей password и replication_password, cddisk и ds задайте свои пароли.

Важно

Не рекомендуется использовать другие имена для баз данных cddisk и ds.

CREATE USER cddisk WITH password 'cddisk';
CREATE USER ds WITH password 'ds';
CREATE DATABASE cddisk OWNER cddisk;
CREATE DATABASE ds OWNER ds;
CREATE DATABASE pagesdb OWNER cddisk;
GRANT ALL privileges ON DATABASE cddisk TO cddisk;
GRANT ALL privileges ON DATABASE ds TO ds;
GRANT ALL privileges ON DATABASE pagesdb TO cddisk;
ALTER DATABASE cddisk OWNER TO cddisk;
ALTER DATABASE ds OWNER TO ds;
ALTER DATABASE pagesdb OWNER TO cddisk;
CREATE USER replication_user WITH REPLICATION LOGIN PASSWORD 'replication_password';
GRANT CONNECT ON DATABASE cddisk TO replication_user;
GRANT CONNECT ON DATABASE ds TO replication_user;

\c cddisk
GRANT USAGE ON SCHEMA public TO replication_user;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO replication_user;
GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO replication_user;

\c ds
GRANT USAGE ON SCHEMA public TO replication_user;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO replication_user;
GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO replication_user;

# Для выхода из БД:
\q
Обратите внимание

Следующие инструкции выполняются на сервере №1.

Создайте директорию для архива:

sudo mkdir /var/lib/pgsql/archive
sudo chown -R postgres: /var/lib/pgsql/archive
sudo chmod -R 750 /var/lib/pgsql/archive
Обратите внимание

Следующие инструкции выполняются на сервере №1.

Перезагрузите службу PostgreSQL для применения изменений:

systemctl restart postgresql

3.2. Настройка репликации Базы данных (БД)

Обратите внимание

Следующие инструкции выполняются на сервере №2.

Удалите существующую директорию данных:

rm -rf /var/lib/pgsql/data

Создайте базовую резервную копию с мастера:

su - postgres -c "pg_basebackup --host=ip_srv1 --username=replication_user --pgdata=/var/lib/pgsql/data --wal-method=stream --write-recovery-conf"

Где ip_srv1 — IP-адрес внутренней сети первого сервера с master БД.

Перезапустите сервис и проверьте его статус:

systemctl restart postgresql.service
systemctl status postgresql.service

4. Установка Корпоративного сервера

Уточнение

Выполнение базовой установки производится в соответствии с руководством: «Установка Р7 Офис. Корпоративный сервер на РЕД ОС» ↗.

Обратите внимание

Следующие инструкции выполняются на сервере №2.

4.1. Предварительная подготовка

Скачайте дистрибутив. Для корректной установки рекомендуется разместить архив в каталоге, отличном от /root, например в /mnt или /tmp.

Важно

Настройку двухнодовой архитектуры рекомендуется начать с установки на втором сервере, чтобы избежать последующих ошибок с серверами.

Перейдите в каталог:

cd /mnt

Распакуйте архив:

unzip RedOS_*.zip
Важно

Для корректной работы Корпоративного сервера обязательно требуется настройка HTTPS. Перед установкой скопируйте файлы .crt и .key в папку sslcert.

Предоставьте права на скрипт установки:

chmod +x online_installer.sh

Создайте DNS-запись для Корпоративного сервера, например:

Пример DNS A-записи для Корпоративного сервера

4.2. Запуск установки второго сервера

Выполните команду:

sudo bash ./online_installer.sh

Выберите Нет, иначе произойдет удаление PostgreSQL:

Окно отказа от чистой установки

Выберите Нет:

Окно отказа от локальной установки PostgreSQL

Выберите Да:

Окно подтверждение установки Сервера документов

Задайте secret. Необходимо ввести секрет (набор цифр, букв и спецсимволов длиной от 8 символов) для защищённого доступа Р7 Диска и Сервера документов:

Окно ввода секрета защищённого доступа Document Server secret

Укажите пароль к БД ds, ранее созданной в пункте 3.1 (из примера: ds):

Окно ввода пароля пользователя базы данных ds

Выберите Да:

Окно подтверждения установки CDDisk api & web

Выберите PostgreSQL:

Окно выбора типа базы данных

Выберите Нет:

Окно отказ от создания локальной базы данных

Укажите БД master и IP-адрес текущего первого сервера:

Окно Database host

Укажите по умолчанию порт 5432:

Окно Database port

Укажите БД cddisk из пункта 3.1 (из примера: cddisk):

Окно указания пользователя базы данных cddisk

Укажите пароль к БД cddisk из пункта 3.1 (из примера: cddisk):

Окно ввода пароля пользователя базы данных cddisk

Если используется Р7 Офис Корпоративный сервер 2019, укажите актуальное значение salt и нажмите ОК:

Окно указания значения salt для генерации ключей

Выберите Да:

Окно подтверждения настройки HTTPS

Необходимо указать домен, в котором у вас созданы записи из пункта подготовки:

Окно Domain name

Далее укажите необходимые префиксы для всех модулей.

Выберите Да (если требуется установка почтового сервера):

Окно запроса «Установить Р7 Почтовый сервер?»
Важно

Дальнейшие действия выполняются только при установке Корпоративного сервера с почтовым сервером. В противном случае требуется перезагрузка сервера.

Выберите PostgreSQL:

Окно выбора базы данных для почтового сервера

Необходимо указать имя сервера:

Окно ввода имени MX-записи для второго сервера

Укажите IP-адрес сервера:

Окно ввода IP-адреса почтового сервера

Укажите пароль для пользователя postfix:

Окно ввода пароля пользователя postfix для БД PostgreSQL

Если требуется установка SpamAssassin:

  • Выберите 1.

Если не требуется установка SpamAssassin:

  • Выберите 2.
Окно выбора опции установки SpamAssassin

Если требуется установка:

  • Выберите Да.

Если не требуется установка:

  • Выберите Нет.
Окно запроса «Установить OpenDKIM?»

После инсталляции в консоли будет предложено сделать TXT запись:

Вывод параметров DKIM TXT-записи для DNS

Перезапустите сервер.

4.3. Установка первого сервера

Обратите внимание

Перед установкой корпоративного сервера №1 необходимо пересоздать базу данных, чтобы избежать дублирования информации.

На сервере №2:

supervisorctl stop all
systemctl stop java-maker.service

На сервере №1 (Мастере):

DROP DATABASE IF EXISTS cddisk;
DROP DATABASE IF EXISTS pagesdb;

Далее мы создадим базу данных заново на мастере из пункта 3.1.

Обратите внимание

Следующие инструкции выполняются на сервере №1.

Скачайте дистрибутив. Для корректной установки рекомендуется разместить архив в каталоге, отличном от /root, например в /mnt или /tmp.

Перейдите в каталог:

cd /mnt

Распакуйте архив:

unzip RedOS_*.zip
Важно

Для корректной работы Корпоративного сервера обязательно требуется настройка HTTPS. Перед установкой скопируйте файлы .crt и .key в папку sslcert.

Предоставьте права на скрипт установки:

chmod +x online_installer.sh

4.4. Запуск установки

Выполните команду:

sudo bash ./online_installer.sh

Выберите Нет:

Окно отказа от чистой установки на первом сервере

Выберите Нет:

Окно отказ от локальной установки PostgreSQL на первом узле

Выберите Да:

Окно подтверждение установки Сервера документов на первом узле

Укажите такой же secret, как для первого сервера:

Окно ввода секрета Document Server secret

Укажите пароль к БД ds из пункта 3.1 (из примера: ds):

Окно ввода пароля пользователя базы данных ds на первом сервере

Выберите Да:

Окно подтверждения установки CDDisk api & web на первом сервере

Выберите PostgreSQL:

Окно выбор СУБД PostgreSQL на первом сервере

Выберите Нет:

Окно отказа от локального развертывания СУБД

Укажите IP адрес первого сервера master:

Окно указания IP-адреса

Укажите порт 5432:

Окно указания порта СУБД PostgreSQL

Укажите БД cddisk из пункта 3.1 (из примера: cddisk):

Окно ввода имени базы данных cddisk

Укажите пароль к БД cddisk из пункта 3.1 (из примера: cddisk):

Окно ввод пароля к базе данных cddisk

Если используется Р7 Офис Корпоративный сервер 2019, укажите актуальное значение salt и нажмите ОК:

Окно указания значения salt

Выберите Да:

Окно подтверждения настройки HTTPS

Необходимо указать домен, в котором у вас созданы записи из пункта подготовки:

Окно указания доменного имени

Далее укажите необходимые префиксы для всех модулей, одинаковые со вторым сервером.

Выберите Да (если требуется установка почтового сервера):

Окно запроса «Установить Р7 Почтовый сервер?»
Важно

Дальнейшие действия выполняются только при установке Корпоративного сервера с почтовым сервером. В противном случае требуется перезагрузка сервера.

Выберите PostgreSQL:

Окно выбора СУБД для почтового сервера

Необходимо указать имя для первого сервера:

Окно ввода имени первого почтового сервера

Укажите IP-адрес сервера:

Окно указания IP-адреса

Укажите пароль для пользователя postfix (нужно указать такой же пароль, как на втором сервере):

Окно задания пароля postfix

Если требуется установка SpamAssassin (выберите тот же вариант, который указали при установке второго сервера):

  • Выберите 1.

Если не требуется установка SpamAssassin:

  • Выберите 2.
Окно выбора режима фильтрации SpamAssassin

Если требуется установка (выберите тот же вариант, который указали при установке второго сервера):

  • Выберите Да.

Если не требуется установка:

  • Выберите Нет.
Окно запроса «Установить OpenDKIM?»

После инсталляции в консоли будет предложено сделать TXT запись:

Запрос добавления TXT-записи

Перезапустите сервер.

5. Выполните дополнительную настройку Nginx и Сервера документов

5.1. Secret

Выведите значение параметра secure_link_secret на первом сервере:

grep -rn "set \$secure_link_secret" /etc/r7-office/documentserver/nginx/ds.conf

Пример вывода:

13: set $secure_link_secret kCj7RMAAYCNtOh6KiGin;

Для второго сервера:

sudo sed -i "s/set \$secure_link_secret [^;]*/set \$secure_link_secret НОВОЕ_ЗНАЧЕНИЕ/" $(grep -rl "set \$secure_link_secret" /etc/r7-office/documentserver/)
sudo sed -i "s/set \$secretString [^;]*/set \$secretString НОВОЕ_ЗНАЧЕНИЕ/" $(grep -rl "set \$secretString" /etc/r7-office/documentserver/)
Важно

Замените НОВОЕ_ЗНАЧЕНИЕ на значение из вывода предыдущей команды.

Пример: kCj7RMAAYCNtOh6KiGin.

5.2. Адрес работы с БД

На обоих серверах проверьте блок sql в файле /etc/r7-office/documentserver/local.json:

"sql": {
        "type": "postgres",
        "dbHost": "localhost",

После чего, укажите вместо localhost IP-адрес первого сервера.

Выполните команды по перезапуску nginx и сервера документов:

systemctl restart nginx ds-converter.service ds-docservice.service ds-metrics.service

6. Настройка подключения почтового сервера (*опционально)

Перейдите в панель администрирования «Р7-Управление» (https://admin.ваш_домен) ➔ Организации ➔ выберите организацию, в которую добавлены пользователи ➔ Почтовые серверы:

Раздел «Почтовые серверы» в модуле «Р7-Управление»

Укажите ранее добавленные данные по почтовому серверу:

Окно редактирования почтового сервера

В такой архитектуре управлять почтовыми ящиками можно только через консоль сервера с помощью скриптов.

Обратите внимание

Интеграция с почтовым сервером не поддерживается из-за наличия конфликтов двух одинаковых записей доменов.

7. Управление переключением БД при неработоспособности первого сервера

7.1. Создайте скрипт управления

Уточнение

Готовый скрипт можно скачать по ссылке change.sh ↗.

Укажите необходимые константы в начале скрипта. Потребуется указать необходимые параметры, что является master (первый сервер) и slave (второй сервер).

Важно

При заполнении параметров ниже используйте те же значения, которые были заданы ранее в пункте 3.1.

Константы для подключения к БД:

  • MASTER_IP="192.168.27.186" — укажите адрес master БД;
  • SLAVE_IP="192.168.26.253" — укажите адрес replica БД;
  • MASTER_MAIL_FQDN="mx1.your-domain.ru" — укажите FQDN-имя почтового сервера на master;
  • REPLICATION_USER="replication_user" — укажите пользователя для репликации;
  • REPLICATION_PASS="replication_password" — укажите пароль пользователя для репликации;
  • LOG_FILE="/var/log/switch_postgres.log" — укажите расположение файла журнала логов скрипта.

Константы для cddisk (appsettings.json):

  • CDDISK_DB_NAME="cddisk" — не рекомендуется изменять;
  • CDDISK_DB_USER="cddisk" — укажите пользователя Корпоративного сервера;
  • CDDISK_DB_PASS="cddisk" — укажите пароль пользователя Корпоративного сервера;
  • CDDISK_DB_PORT="5432" — укажите порт БД.

Константы для documentserver (local.json):

  • DS_DB_NAME="ds" — не рекомендуется изменять;
  • DS_DB_USER="ds" — укажите пользователя Сервера документов;
  • DS_DB_PASS="ds" — укажите пароль пользователя Сервера документов;
  • DS_DB_PORT="5432" — укажите порт БД.

Константы для java-maker (external.properties):

  • JAVA_DB_NAME="pagesdb" — не рекомендуется изменять;
  • JAVA_DB_PORT="5432" — укажите порт БД.

Назначение пунктов меню скрипта change.sh:

  1. Установка параметров master — применяет параметры master для основного сервера (настраивает конфигурации приложений на использование master БД) и создаёт в том же каталоге резервную копию изменяемых файлов;
  2. Установка параметров slave — применяет параметры slave для резервного сервера (настраивает конфигурации приложений на использование master БД и включает репликацию) и создаёт резервную копию изменяемых файлов;
  3. Показать текущие конфиги — отображает текущие параметры конфигурационных файлов приложений;
  4. Проверка подключения с новыми параметрами — проверяет доступ для приложений с заданными константами по подключению к master;
  5. Восстановить конфигурации из .bak — восстанавливает исходные конфигурационные файлы из резервных копий .bak;
  6. Перезапустить сервисы приложений — перезапускает сервисы приложений после изменения конфигураций;
  7. Показать текущий статус сервера — указывает состояние БД на текущем сервере;
  8. Остановка сервисов корпоративного сервера (холодный резерв) — останавливает сервисы Корпоративного сервера для перехода в режим холодного резерва.

7.2. Проверка работы серверов

Для проверки потребуется использовать в DNS A-запись с IP-адресом первого сервера (мастер). Перейдите по адресу https://admin.ваш_домен, убедитесь с помощью команды ping, что используется корректная адресация на первый адрес Корпоративного сервера, и используйте предустановленные логин и пароль superadmin. Создайте пользователя и проверьте редактирование файлов — корректное сохранение файлов и повторное открытие файлов.

Далее переключите A-запись на второй сервер и также проверьте его работу.

В DNS укажите текущую ноду, назначенную master. Запустите скрипт управления БД и проверьте текущие статусы серверов.

Обратите внимание

Настоятельно рекомендуется отработать поэтапное переключение из slave в master на втором сервере в случае появления ошибок на первом сервере.

8. Резервное копирование и восстановление

Для проведения резервирования и восстановления необходимо использовать скрипты из статьи: «Резервное копирование и восстановление Р7 Диск» ↗.

Перед использованием скрипта создания резервной копии добавьте каталог mail при использовании почтового сервера, приведите к виду строку:

# Создание архива с бэкапом
tar cf "$backup_dir/cddisk-${backup_date}.tar.bz2" --selinux --use-compress-prog="lbzip2 -k -n$num_cores" /opt/r7-office $supervisor_dir /etc/r7-office /var/r7-office /var/www/r7-office "$backup_dir/cddisk_db.tar.gz /mail"

При восстановлении на мастер-ноде рекомендуется остановить службу:

systemctl stop glusterfs

После завершения восстановления включить:

systemctl start glusterfs

При восстановлении резервной ноды нет необходимости выполнять восстановление, так как скрипт позволяет назначить вторую ноду репликой первой для БД, а автоматическая синхронизация каталогов выполняется средствами GlusterFS.

Была ли эта статья полезной?

Поделитесь пожалуйста своим мнением

      В статье есть ошибкиРекомендации не помоглиТекст трудно понятьСодержание статьи не соответствует заголовкуДругое