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

Установка отказоустойчивой архитектуры Корпоративного сервера 2024 + Почтовый сервер на OС Астра Линукс 1.8

Обновлено: 24.09.26

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

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

Для установки потребуется wildcard сертификат, содержащий полную цепочку (fullchain)

Например:

----BEGIN CERTIFICATE-----
(Your Primary SSL certificate: your_domain_name.crt)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Your Intermediate certificate: DigiCertCA.crt)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Your Root certificate: TrustedRoot.crt)
-----END CERTIFICATE-----

Где:

Основной Certificate — your_domain_name.crt
Промежуточный Certificate — DigiCertCA.crt
Корневой Certificate — TrustedRoot.crt

Схема

Описание

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

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

  • PostgreSQL 15.6;
  • Rabbitmq-server 3.10;
  • Redis server 7.0;
  • glusterfs 10.3.
Важно

Проверка осуществлялась на версии 2026.3.6.17475 Корпоративного сервера 2024 и Сервера документов 2025.4.1-1604.

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

1. При использовании одной доменной А записи с несколькими IP-адресами (с возможностью включения и выключения IP) или изменение доменной записи для Корпоративного сервера вида *.domain.ru, например: *.test2.s7-office.site, и отдельными записями для двух почтовых серверов (*опционально).

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

Уточнение

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

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

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

  • 2 Виртуальные машины;
  • Для хранения данных glusterfs;
  • ТХ Машин, для тестирования, возможно использовать:
    От 4 CPU;
    От 8Гб RAM;
    От 50Гб свободного пространства на диске;
  • Более конкретные данные рассчитываются по обращению в ТП;
  • Отключение или перевод selinux в режим permissive для корректной работы сервисов.

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

1.1. Описание

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

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

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

filestorage_temp
filestorage_temp_proc

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

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

1.2. Установка и настройка 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.186 mx1.your-domain.ru
192.168.26.253 mx2.your-domain.ru

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

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

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

Важно

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

Важно

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

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

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

Не имеет значения, какой из узлов вы будете использовать, но в следующем примере команда запускается на 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.

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

Создание томов

Важно

Выполняется на первом сервере.

Для создания тома вы будете использовать команду 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

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

 

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

v=spf1 +mx ~all
Уточнение

TXT v=spf1 +a +mx -all говорит о том, что отправлять письма от имени домена your-domain.ru могут сервера, указанные в A и MX-записях этого домена, а письма, отправленные от других серверов должны быть удалены (Fail). Важно понимать: SPF-запись не наследуется на поддомены.

Важно

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

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

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

sudo apt update && sudo apt install postgresql -y

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

Важно

Инструкция ниже выполняется на всех серверах.

Отредактируйте postgresql.conf:

sudo nano /etc/postgresql/14/main/postgresql.conf
Важно

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

В файле postgresql.conf разрешите логическую репликацию. Для этого отредактируйте /etc/postgresql/11/main/postgresql.conf:

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

Где:

ip_srv1, ip_srv2 — адреса внутренней сети первого и второго почтового сервера.

Настройте аутентификацию пользователей в базе данных. Приведите к следующему виду файл /etc/postgresql/11/main/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 — адреса первого или второго почтового сервера, в зависимости от сервера, где производится настройка.

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

sudo systemctl restart postgresql
Важно

Инструкция ниже выполняется на сервере №1.

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

sudo -u postgres psql

В консоли psql> выполните следующие команды (вместо паролей password и replication_password, cddisk и ds задайте свои пароли), подтверждая каждую нажатием Enter:

Важно

Не рекомендуется использовать другие имена для баз данных 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;
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.

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

#в зависимости от версии установленной postgresql сервера, путь к каталогу может отличаться
sudo mkdir -p /var/lib/postgresql/11/main/archive
sudo chown -R postgres:postgres /var/lib/postgresql/11/main/archive
sudo chmod -R 750 /var/lib/postgresql/11/main/archive
Важно

Инструкция ниже выполняется на сервере №1.

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

systemctl restart postgresql*

3.2. Настройка репликации БД

Важно

Инструкция ниже выполняется на сервере №2.

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

#в зависимости от версии установленной postgresql сервера, путь к каталогу может отличаться
rm -rf /var/lib/postgresql/11/main

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

#в зависимости от версии установленной postgresql сервера, путь pgdata=/var/lib/postgresql/11/main может отличаться
su - postgres -c "pg_basebackup --host=ip_srv1 --username=replication_user --pgdata=/var/lib/postgresql/11/main --wal-method=stream --write-recovery-conf"

Где:

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

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

systemctl restart postgresql*
systemctl status postgresql*

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

Выполнение установки по инструкции Установка Корпоративный сервер 2024 на ОС Астра Линукс ↗.

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

Скачайте дистрибутив.

Уточнение

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

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

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

cd /mnt

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

unzip CDinstall_*.zip

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

cd CDDiskPack/CDinstall/
Важно

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

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

chmod +x online_installer.sh

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

Если Offline установка

chmod +x offline_installer.sh
Важно

Для offline установки требуется установить пакеты в систему и подключить ISO-образ установочного диска операционный системы в папку distr.

Уточнение

Скачать пакеты можно по данной ссылке ↗.

Архив cddisk.zip содержит необходимые пакеты для Корпоративного сервера 2024.

1. Установить wget;
2. Скачать архив cddisk.zip, распаковать и установить пакеты командой.
sh install.sh.

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

В папку ./distr положите ISO-образ установочного диска операционный системы. Файл должен быть с расширением .iso. Данный образ вы можете скачать с официального сайта производителя.

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

Важно

Инструкция ниже выполняется на сервере №2.

Если установка online

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

./online_installer.sh

Если установка offline

Убедитесь, что все репозитории отключены, чтобы установка пакетов происходила исключительно из offline архива. Для этого удалите или закомментируйте (добавив символ # в начало строки) все строки в файле /etc/apt/sources.list, а также очистите содержимое папки /etc/apt/sources.list.d.

После этого запустите установку:

./offline_installer.sh

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

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

Выберите Да:

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

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

Выберите Да:

Выберите PostgreSQL:

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

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

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

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

Укажите системного пользователя postgres:

Укажите пользователя cddisk:

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

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

Измените на актуальный, если есть Корпоративный сервер 2019 и нажмите ОК:

Выберите Да:

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

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

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


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

Дальнейшие действия нужно выполнять только при установке Корпоративного сервера 2024 с Почтовым сервером, иначе перезагрузите сервер.

Выберите PostgreSQL:

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

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

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

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

  • Выберите 1.

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

  • Выберите 2:

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

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

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

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

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

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

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

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

Важно

Инструкция ниже выполняется на сервере №2.

supervisorctl stop all
systemctl stop java-maker.service
Важно

Инструкция ниже выполняется на сервере №1 (master).

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

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

Скачайте дистрибутив.

Уточнение

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

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

cd /mnt

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

unzip CDinstall_*.zip
Важно

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

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

cd CDDiskPack/CDinstall/

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

chmod +x online_installer.sh

Если Offline установка

chmod +x offline_installer.sh
Важно

Для offline установки требуется установить пакеты в систему и подключить ISO-образ установочного диска операционный системы в папку distr.

Уточнение

Скачать пакеты можно по данной ссылке ↗.

Архив cddisk.zip содержит необходимые пакеты для Корпоративного сервера 2024.

1. Установить wget;
2. Скачать архив cddisk.zip, распаковать и установить пакеты командой.
sh install.sh.

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

В папку ./distr положите ISO-образ установочного диска операционный системы. Файл должен быть с расширением .iso. Данный образ вы можете скачать с официального сайта производителя.

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

Если установка online

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

./online_installer.sh

Если установка offline

Убедитесь, что все репозитории отключены, чтобы установка пакетов происходила исключительно из offline архива. Для этого удалите или закомментируйте (добавив символ # в начало строки) все строки в файле /etc/apt/sources.list, а также очистите содержимое папки /etc/apt/sources.list.d.

После этого запустите установку:

./offline_installer.sh

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

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

Выберите Да:

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

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

Выберите Да:

Выберите PostgreSQL:

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

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

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

Укажите имя БД cddisk:

Укажите пользователя postgres:

Укажите пользователя cddisk для БД cddisk:

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

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

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

Измените на актуальный, если есть Корпоративный сервер 2019 и нажмите ОК:

Выберите Да:

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

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

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


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

Дальнейшие действия нужно выполнять только при установке Корпоративного сервера 2024 с Почтовым сервером, иначе перезагрузите сервер.

Выберите PostgreSQL:

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

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

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

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

  • Выберите 1.

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

  • Выберите 2:

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

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

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

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

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

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

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

Выведите значение параметра 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 -E "s/\"secretString\": .+/\"secretString\": \"НОВОЕ_ЗНАЧЕНИЕ\"/" $(grep -rl "secretString" /etc/r7-office/documentserver/)

Где, замените НОВОЕ_ЗНАЧЕНИЕ на необходимый параметр c вывода предыдущей команды (пример, kCj7RMAAYCNtOh6KiGin).

Измените в /etc/r7-office/documentserver/local.json строку:

"dbHost": "localhost"

Где потребуется заменить localhost на адрес текущего мастера (первого сервера), из примера 192.168.27.135.

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

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

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

Перейдите в https://admin.test2.s7-office.site/ Организации — Выберите организацию, в которую добавлены пользователи — Почтовые серверы:

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

Скопируйте папку /home/mail_cddisk/.ssh из первого сервера во второй сервер.

Выполните на втором сервере:

chown -R mail_cddisk:mail_cddisk /home/mail_cddisk/.ssh

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.stend12.s7-office.site" — укажите 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" — укажите порт БД

Константы для почтового сервера (postfix, dovecot):

  • MAIL_DB_NAME="postfix" — не рекомендуется изменять
  • MAIL_DB_USER="postfix" — укажите пользователя Postfix
  • MAIL_DB_PASS="postfix" — укажите пароль пользователя Postfix
  • MAIL_DB_PORT="5432" — укажите порт БД

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

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

Описание пунктов:

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

7.2. Настройка второго сервера

Укажите в скрипте текущее представление серверов (master и slave) в константах скрипта (и проверьте другие параметры с корректными данными) и запустите скрипт на втором сервере (slave) пункт меню «Установка параметров slave».

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

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

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

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

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

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

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

Для проведения резервирования и восстановления необходимо использовать скрипты из статьи Резервное копирование/восстановление Корпоративный сервер 2024. ↗

Перед использованием скрипта создания бекапа добавьте каталог 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.

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

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

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