Продукты Р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.

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

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

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