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

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

Обновлено: 25.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.

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

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

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

Уточнение

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

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

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

  • 2 виртуальные машины;
  • Файловое хранилище GlusterFS для синхронизации данных;
  • Минимальные технические характеристики узлов (для тестирования):
    • от 4 vCPU;
    • от 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. Установка, запуск и добавление GlusterFS в автозагрузку на всех нодах

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

A-записи:

smtp - 192.168.27.186, 192.168.26.253
imap - 192.168.27.186, 192.168.26.253

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

Примеры 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. Установка и настройка базы данных (БД)

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

sudo apt update && sudo apt install postgresql -y

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

Важно

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

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

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

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

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

listen_addresses = 'localhost,ip_srv1,ip_srv2'       # Слушать на адресах
port = 5432                         # Задать порт БД
wal_level = replica             # Включить репликацию
archive_mode = on               # Включить архивирование WAL
archive_command = 'cp %p /var/lib/postgresql/11/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 — IP-адреса внутренней сети первого и второго серверов.

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

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

sudo systemctl restart postgresql
Важно

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

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

sudo -u postgres psql

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

Важно

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

Уточнение

Значения паролей, указанные в кавычках ('cddisk', 'ds' и 'replication_password'), замените на собственные.

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 — IP-адрес внутренней сети первого сервера с 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-запись для Корпоративного сервера, например:

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

При 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:

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

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

Окно отказа от локальной установки 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

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

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

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

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

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

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

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

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

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

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

Выберите Да:

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

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

Окно Domain name

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

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

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

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

Выберите 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 (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

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

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

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

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

Выберите Да:

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

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

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

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

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

Выберите Да:

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

Выберите PostgreSQL:

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

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

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

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

Окно Database host

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

Окно Database port

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Выберите Да:

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

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

Окно Domain name

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

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

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

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

Выберите PostgreSQL:

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

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

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

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

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

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

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

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

  • Выберите 1.

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

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

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

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

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

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

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

Запрос добавления 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/)
Важно

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

Пример: kCj7RMAAYCNtOh6KiGin.

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

"dbHost": "localhost"

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

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

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

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

Перейдите по адресу https://admin.test2.s7-office.site/

Организации → выберите организацию, в которую добавлены пользователи → Почтовые серверы.

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

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

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

Скопируйте каталог /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.test2.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. Перезапустить сервисы приложений — перезапускает сервисы приложений после изменения конфигураций;
  7. Показать текущий статус сервера — указывает состояние БД на текущем сервере;
  8. Остановка сервисов корпоративного сервера (холодный резерв) — останавливает сервисы корпоративного сервера для режима «холодный резерв»;

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

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

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

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

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

В 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"

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

systemctl stop glusterfs

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

systemctl start glusterfs

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

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

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

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