Содержание
- 0. Технические требования
- 1. Архитектура
- 2. Роль PostgreSQL
- 3. Роль Сервер документов (DS)
- 3.1. Добавьте репозиторий
- 3.2. Добавьте ключ к репозиторию
- 3.3. Обновите список пакетов
- 3.4. Установите PostgreSQL
- 3.5. Запустите PostgreSQL
- 3.6. Создайте БД и пользователя
- 3.7. Установите вспомогательные сервисы
- 3.8. Запустите сервисы
- 3.9. Настройка DS
- 3.10. Установка DS
- 3.11. Запустите DS
- 3.12. Переведите на HTTPS
- 3.13. Регистрация Сервера документов
- 4. Роль Р7 Диск
- 4.1. Скачайте архив дистрибутива
- 4.2. Разместите архив в /mnt
- 4.3. Распакуйте
- 4.4. Перейдите в каталог
- 4.5. Для HTTPS
- 4.6. Добавьте права на исполнение скрипту
- 4.6.1. Настройка для DS
- 4.7. Запустите установку
- 4.7.1. В процессе установки
- 4.7.1.1. Чистая установка
- 4.7.1.2. Установка СУБД на локальную ВМ
- 4.7.1.3. Установка Сервера Документов
- 4.7.1.4. Установка CDDisk api & web
- 4.7.1.5. Выберите PostgreSQL (для версий 14752 и ниже)
- 4.7.1.6. Создание БД
- 4.7.1.7. Хост СУБД
- 4.7.1.8. coremachinkey от CS19
- 4.7.1.9. Настройка HTTPS
- 4.7.1.10. Укажите домен
- 4.7.1.11. Установить Р7 Почтовый сервер
- 4.7.1.12. Перезагрузите систему
- 4.7.1. В процессе установки
- 4.8. Зайдите в БД
- 4.9. Интеграция Корпоративного сервера 2024 с вынесенным сервером документов
- 4.9.1. На сервере с БД (PostgreSQL) (пункт 1) выведите информацию
- 4.9.2. Отредактируйте файл /etc/nginx/sites-available/cddisk на сервере с ролью Р7 Диск
- 4.9.3. Проверьте конфигурацию
- 4.9.4. Перезапустите сервис nginx
- 4.9.5. Перезапустите cddisk
- 4.9.6. Отключите сервер документов на сервере с ролью Р7 Диск, если версия ниже 14000
- 4.9.7. Отредактируйте файл /etc/hosts на сервере с ролью Р7 Диск
- 5. Роль Search
- 6. Роль NFS (опционально)
- 7. Подключение сетевых каталогов
- 8. Настройка потоковой репликации Master-Slave PostgreSQL
Для установки потребуется 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-----
Где:
- Основной сертификат — your_domain_name.crt.
- Промежуточный сертификат — DigiCertCA.crt.
- Корневой сертификат — TrustedRoot.crt.
0. Технические требования
- 6 Виртуальных машин (без slave и файлового сервера — 4);
- Для сервера NFS дополнительно 3 диска (для Р7 Диск, для Сервера документов, для Сервера поиска);
- ТХ Машин, для тестирования, возможно использовать:
- от 2 CPU;
- от 4 ГБ RAM (для ролей Поиска и Р7 Диска рекомендуем использовать от 8 ГБ);
- от 20 ГБ свободного пространства на диске;
- Более конкретные данные рассчитываются по обращению в ТП;
- Отключение или перевод SELinux в режим
permissiveдля корректной работы сервисов.
Выбор версии СУБД и ОС для серверов баз данных зависит от версии Корпоративного сервера.
Требуемая версия PostgreSQL зависит от установленной версии Корпоративного сервера. Ограничения по версии ОС относятся только к серверам БД (сам Р7 Диск ставится на любую поддерживаемую систему):
- Для Корпоративного сервера версии 2026.4.14.17766 и выше: требуется PostgreSQL 13 и новее. Серверы баз данных необходимо разворачивать на ОС Astra Linux 1.8.1 (или новее).
- Для Корпоративного сервера ниже версии 2026.4.14.17766: допускается использование PostgreSQL 11 на ОС Astra Linux 1.7.4.
Дальнейшая инструкция описывает процесс установки Корпоративного сервера 2026.4.14.17766.
1. Архитектура
1.1. Схема

1.2. Описание
1.2.1. Роль Р7 Диск
Фронт и бэкенд сервиса Р7 Диска, модули Р7 Диск, Р7 Почта, Р7 Управление, Р7 Календарь и т. д. Хранение и обработка пользовательских сессий и файлов.
1.2.2. Роль PostgreSQL
Хранение информации о пользователях, файлах, ролях, событиях и т. п. Критически важная роль для работы продукта.
1.2.3. Роль Поиск
Отвечает за поиск файлов и писем в продукте Р7 Диск, крайне требователен к ресурсам сервера. Чем больше данных и чаще ведётся поиск, тем больше требуется ресурсов.
1.2.4. Роль NFS сервер
Является файловым хранилищем пользовательских файлов и индексов Р7 Диск и сервиса Поиска, а также кеша и лицензии Сервера документов.
1.2.5. Роль Сервер документов
Отвечает за функционал редактирования документов.
2. Роль PostgreSQL
При включённой службе firewalld необходимо выполнить настройку для PostgreSQL.
# Добавляем службу: sudo firewall-cmd --permanent --zone=public --add-service=postgresql # Перезапускаем службу firewalld: sudo firewall-cmd --reload # Проверяем правила для зоны public: sudo firewall-cmd --zone=public --list-all
2.1. Установите PostgreSQL
sudo apt update && sudo apt install postgresql -y
2.2. Проверьте установленную версию PostgreSQL
После установки проверьте, какая именно версия СУБД была развёрнута в системе:
psql -V
Запомните полученную версию (например, 11 или 13). Во всех дальнейших шагах инструкции обязательно заменяйте цифру «15» в путях к файлам и командах на вашу актуальную версию.
2.3. Отредактируйте postgresql.conf
sudo nano /etc/postgresql/15/main/postgresql.conf
Приводим параметры к виду:
listen_addresses = 'localhost,192.168.26.48' # what IP address(es) to listen on; port = 5432
Где:
localhost,192.168.26.48— адреса, которые слушает сервис;5432— порт, который сервис прослушивает.
2.4. Измените pg_hba.conf
sudo nano /etc/postgresql/15/main/pg_hba.conf
Добавьте строку:
host cddisk cddisk 192.168.26.99/32 trust host pagesdb cddisk 192.168.26.99/32 trust
Где:
cddisk— имя базы данных Р7 Диск;cddisk— имя пользователя для Р7 Диск;pagesdb— имя базы данных для модуля Р7 Страницы;192.168.26.99— адрес, с которого будет подключаться Р7 Диск.
2.5. Создайте пользователя и БД для роли «Р7 Диск»
sudo -i -u postgres psql -c 'CREATE DATABASE cddisk;' sudo -i -u postgres psql -c "CREATE USER cddisk WITH password 'cddisk';" sudo -i -u postgres psql -c 'GRANT ALL privileges ON DATABASE cddisk TO cddisk;' sudo -i -u postgres psql -c 'CREATE DATABASE pagesdb OWNER cddisk;' sudo -i -u postgres psql -c 'GRANT ALL privileges ON DATABASE pagesdb TO cddisk;'
Где:
cddisk— имя БД для работы Р7 Диск;cddisk— пользователь с доступом к БД cddisk;cddisk— пароль пользователя cddisk;pagesdb— имя базы данных для модуля Р7 Страницы.
2.6. Перезапустите PostgreSQL
sudo systemctl restart postgresql
3. Роль Сервер документов (DS)
Актуальная инструкция на сайте ↗.
При включённой службе firewalld необходимо выполнить настройку для DS.
# Добавляем службу: sudo firewall-cmd --permanent --zone=public --add-service=https sudo firewall-cmd --permanent --zone=public --add-service=http # Перезапускаем службу firewalld: sudo firewall-cmd --reload # Проверяем правила для зоны public: sudo firewall-cmd --zone=public --list-all
3.1. Добавьте репозиторий
sudo echo "deb https://downloads.r7-office.ru/repository/r7-server-apt/ r7 main" | sudo tee /etc/apt/sources.list.d/r7server.list
3.2. Добавьте ключ к репозиторию
sudo curl -s https://download.r7-office.ru/repos/RPM-GPG-KEY-R7-OFFICE.public | sudo gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/r7.gpg --import && sudo chmod 644 /etc/apt/trusted.gpg.d/r7.gpg
Добавьте файл для авторизации в репозитории:
sudo vi /etc/apt/auth.conf.d/r7server.conf
Если данной директории нет, необходимо отредактировать файл auth.conf:
sudo vi /etc/apt/auth.conf
Пропишите в файле следующие данные:
machine downloads.r7-office.ru login server password KwmuQmOzuFIw9wcJsL3zb
Измените права доступа к файлу:
sudo chmod 600 /etc/apt/auth.conf.d/r7server.conf
Если директории /etc/apt/auth.conf.d нет, то выполните эту команду:
sudo chmod 600 /etc/apt/auth.conf
3.3. Обновите список пакетов
sudo apt update
3.4. Установите PostgreSQL
sudo apt install postgresql -y
3.5. Запустите PostgreSQL
sudo systemctl enable --now postgresql
3.6. Создайте БД и пользователя
sudo -i -u postgres psql -c "CREATE USER r7office WITH password 'r7office';" sudo -i -u postgres psql -c "CREATE DATABASE r7office OWNER r7office;" sudo -i -u postgres psql -c "GRANT ALL privileges ON DATABASE r7office TO r7office;"
3.7. Установите вспомогательные сервисы
sudo apt install "rabbitmq-server=3.*" redis-server nginx-extras -y
3.8. Запустите сервисы
sudo systemctl enable --now rabbitmq-server sudo systemctl enable --now redis-server
3.9. Настройка DS
# Пароль от пользователя r7office в PostgreSQL sudo echo r7-office-documentserver-ee ds/db-pwd select r7office | sudo debconf-set-selections # Пользователь с доступом к БД r7office sudo echo r7-office-documentserver-ee ds/db-user select r7office | sudo debconf-set-selections # БД для DS в PostgreSQL sudo echo r7-office-documentserver-ee ds/db-name select r7office | sudo debconf-set-selections # header для JWT sudo echo r7-office-documentserver-ee ds/jwt-header string AuthorizationJWT | sudo debconf-set-selections # Включение/отключение JWT sudo echo r7-office-documentserver-ee ds/jwt-enabled boolean true | sudo debconf-set-selections # Секрет JWT, необходимо запомнить, понадобится при установке Р7 Диск sudo echo r7-office-documentserver-ee ds/jwt-secret password "123QWEasddsaEWQ321" | sudo debconf-set-selections
Где:
db-pwd— пароль пользователя в параметреdb-user;db-user— пользователь, созданный в п.3.6;db-name— имя базы данных, созданной в п.3.6;jwt-header— заголовок HTTP, который будет использоваться для отправки токена исходящего запроса;jwt-enabled— определяет, включены ли токены или нет;jwt-secret— определяет параметры секретного ключа для генерации токена сеанса.
3.10. Установка DS
3.10.1. Обновите кэш менеджера пакетов
sudo apt-get update
3.10.2. Установите пакет
sudo apt install r7-office-documentserver-ee -y
3.11. Запустите DS
sudo systemctl enable --now ds-docservice.service sudo systemctl enable --now ds-converter.service sudo systemctl enable --now ds-metrics.service
3.12. Переведите на HTTPS
Актуальная инструкция на сайте ↗.
3.12.1. Создайте директорию
sudo mkdir /var/www/r7-office/Data/ssl
3.12.2. Поместите сертификат и ключ в таком виде
/var/www/r7-office/Data/ssl/имя_файла.crt /var/www/r7-office/Data/ssl/имя_файла.key
Где:
имя_файла— домен или произвольное название.
3.12.3. Замените конфиг на HTTPS
sudo cp /etc/r7-office/documentserver/nginx/ds.conf /etc/r7-office/documentserver/nginx/ds.conf_orig sudo cp -f /etc/r7-office/documentserver/nginx/ds-ssl.conf.tmpl /etc/r7-office/documentserver/nginx/ds.conf
3.12.4. Измените конфигурационный файл
sudo nano /etc/r7-office/documentserver/nginx/ds.conf
3.12.4.1. Измените строки
# Закомментировать #ssl on # Изменить ssl_certificate /var/www/r7-office/Data/ssl/имя_файла.crt; ssl_certificate_key /var/www/r7-office/Data/ssl/имя_файла.key;
Где:
имя_файла— домен или произвольное название.
3.12.4.2. Запустите скрипт для обновления секрета storage
sudo bash /usr/bin/documentserver-update-securelink.sh
3.12.5. Проверьте конфигурацию
sudo nginx -t
3.12.6. Перезапустите сервис nginx
systemctl restart nginx
3.13. Регистрация Сервера документов
Если вы приобрели Сервер документов и получили файл license.lic, вы можете поместить его в каталог установки для получения полной версии программы.
Если вы используете дистрибутив Linux на базе Debian, файл license.lic помещается в следующую папку:
/var/www/r7-office/Data/license.lic
Имя файла лицензии должно быть строго license.lic.
После этого ваша версия Сервера документов станет зарегистрированной и полнофункциональной.
4. Роль Р7 Диск
Актуальная инструкция на сайте ↗.
При включённой службе firewalld необходимо выполнить настройку для Р7 Диск.
# Добавляем службу: sudo firewall-cmd --permanent --zone=public --add-service=https sudo firewall-cmd --permanent --zone=public --add-service=http # Перезапускаем службу firewalld: sudo firewall-cmd --reload # Проверяем правила для зоны public: sudo firewall-cmd --zone=public --list-all
4.1. Скачайте архив дистрибутива
4.2. Разместите архив в /mnt
4.3. Распакуйте
unzip CDinstall_*.zip
4.4. Перейдите в каталог
cd CDDiskPack/CDinstall/
4.5. Для HTTPS
Если требуется настройка HTTPS, перед установкой скопируйте файлы crt и key в папку CDDiskPack/CDinstall/sslcert.
Имя файла должно содержать название домена и расширение.
Например, для домена devr7.ru имена файлов должны быть devr7.ru.crt и devr7.ru.key.
4.6. Добавьте права на исполнение скрипту
chmod +x online_installer.sh
4.6.1. Настройка для DS
Данные действия необходимы при установке версии Корпоративного сервера ниже 14000.
# Пароль от пользователя r7office в PostgreSQL sudo echo r7-office-documentserver-ee ds/db-pwd select r7office | sudo debconf-set-selections # Пользователь с доступом к БД r7office sudo echo r7-office-documentserver-ee ds/db-user select r7office | sudo debconf-set-selections # БД для DS в PostgreSQL sudo echo r7-office-documentserver-ee ds/db-name select r7office | sudo debconf-set-selections # header для JWT sudo echo r7-office-documentserver-ee ds/jwt-header string AuthorizationJWT | sudo debconf-set-selections # Включение/отключение JWT sudo echo r7-office-documentserver-ee ds/jwt-enabled boolean true | sudo debconf-set-selections # Секрет JWT, необходимо запомнить, понадобится при установке Р7 Диск sudo echo r7-office-documentserver-ee ds/jwt-secret password "123QWEasddsaEWQ321" | sudo debconf-set-selections # Host БД для DS в PostgreSQL sudo echo r7-office-documentserver-ee ds/db-host string 192.168.27.184 | sudo debconf-set-selections
Где:
db-pwd— пароль пользователя в параметреdb-user;db-user— пользователь, созданный в п.3.6;db-name— имя базы данных, созданной в п.3.6;jwt-header— заголовок HTTP, который будет использоваться для отправки токена исходящего запроса;jwt-enabled— определяет, включены ли токены или нет;jwt-secret— определяет параметры секретного ключа для генерации токена сеанса;192.168.27.184— IP-адрес сервера с «Роль PostgreSQL».
4.7. Запустите установку
В зависимости от версии дистрибутива, шаги могут отличаться.
bash ./online_installer.sh
4.7.1. В процессе установки
4.7.1.1. Чистая установка
Если требуется выполнить чистую установку (при этом будут удалены имеющаяся установка Р7 Диск и зависимости):
- Выберите Да:

4.7.1.2. Установка СУБД на локальную ВМ
PostgreSQL будет на другой ВМ:
- Выберите Нет:

4.7.1.3. Установка Сервера Документов
Если версия устанавливаемого Корпоративного сервера 2024 ниже 14000, то для корректной установки роли «Р7 Диск» требуется Document Server. В данном случае будем выбирать «Нет».
Установка Сервера документов:
- Выберите Нет:

4.7.1.3.1. Укажите адрес сервера документов установленного ранее

4.7.1.3.2. JWT Key Document Server
Укажите секрет установленного Document Server.
- Значение
jwt-secretбыло задано в п. 4.6.1 (в примере используется значение123QWEasddsaEWQ321):

4.7.1.4. Установка CDDisk api & web
- Выберите Да.

4.7.1.5. Выберите PostgreSQL (для версий 14752 и ниже)
- Выберите PostgreSQL:

4.7.1.6. Создание БД
Выберите.
- Нет:

4.7.1.7. Хост СУБД
Укажите IP-адрес сервера с СУБД:

4.7.1.7.1. Порт СУБД
Укажите порт сервера с СУБД.
- По умолчанию 5432, порт задавали в п.2.2:

4.7.1.7.2. Укажите название БД cddisk
Создавалась на вынесенной БД в п.2.4:

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

4.7.1.7.4. Пользователь СУБД

Укажите пользователя сервера СУБД, заданного в п. 2.4.
- По умолчанию:
cddisk.
4.7.1.7.5. Укажите пароль пользователя cddisk

4.7.1.7.6. Укажите пароль пользователя cddisk

4.7.1.8. coremachinkey от CS19
- Измените на актуальный, если есть Р7 Офис Корпоративный сервер 2019 и нажмите ОК;
- Если нет, нажмите ОК без редактирования.

4.7.1.9. Настройка HTTPS
- Выберите Да:

4.7.1.10. Укажите домен
Необходимо указать домен, в котором у Вас созданы записи.
Например, при домене devr7.ru необходимо создать A-запись cddisk.devr7.ru.
В значении укажите именно devr7.ru, а не созданную А-запись.

4.7.1.10.1. Префиксы для модулей. Пример для Р7 Диск

Например, если вы хотите, чтобы открылся Р7 Диск по адресу cddisk.devr7.ru, то указать нужно именно cddisk, без указания домена.
Также необходимо создать соответствующую A-запись в DNS.
4.7.1.10.2. Остальные префиксы укажите по аналогии и укажите в DNS необходимые записи по префиксам модулей
4.7.1.11. Установить Р7 Почтовый сервер
- Выберите Нет:

4.7.1.12. Перезагрузите систему
Для корректной работы Р7 Диск требуется перезагрузка.
4.8. Зайдите в БД
Данный пункт требуется выполнять, если вы допустили ошибку в п. 3.9 или в п. 4.7.1.3.1 и указали неверный секрет или просто хотите обновить данные для повышения безопасности.
psql -h<IP_СЕРВЕР_С_БД> -Ucddisk cddisk
4.8.1. Обновите данные DS
4.8.1.1. URL DS
UPDATE public."MessageSettings" SET "Value"='https://ds.devr7.ru' WHERE "Key" = 'documentServerUrl';
4.8.1.2. Секрет
Находится в файле /etc/r7-office/documentserver/local.json:
UPDATE public."MessageSettings" SET "Value"='123QWEasddsaEWQ321' WHERE "Key" = 'files.docservice.secret';

В данном примере секрет отличается, так как его заменили другим значением в п. 3.9 и п. 4.7.1.3.1. Если вы не допустили ошибку, то изменять ничего не нужно.
4.8.2. Перезапустите cddisk
supervisorctl restart all
4.8.3. Проверьте работу документов
Зайдите на портал Корпоративного сервера 2024 и создайте документ. Проверьте редактирование.
4.9. Интеграция Корпоративного сервера 2024 с вынесенным сервером документов
Актуальная инструкция: Интеграция Корпоративного сервера 2024 с вынесенным сервером документов ↗.
4.9.1. На сервере с БД (PostgreSQL) (пункт 1) выведите информацию
sudo -u postgres psql -d cddisk -c "SELECT * FROM public.\"MessageSettings\" WHERE \"Key\" = 'documentServerUrl';" sudo -u postgres psql -d cddisk -c "SELECT * FROM public.\"MessageSettings\" WHERE \"Key\" = 'apiUrlInternal';" sudo -u postgres psql -d cddisk -c "SELECT * FROM public.\"MessageSettings\" WHERE \"Key\" = 'files.docservice.secret';" # - где потребуется сохранить значение files.docservice.secret
4.9.1.1. Обновите на новые значения секрет (если требуется) и адрес сервера документов в БД
sudo -u postgres psql -d cddisk -c "UPDATE public.\"MessageSettings\" SET \"Value\"='https://ds.devr7.ru' WHERE \"Key\" = 'documentServerUrl';" sudo -u postgres psql -d cddisk -c "UPDATE public.\"MessageSettings\" SET \"Value\"='https://cddisk.devr7.ru' WHERE \"Key\" = 'apiUrlInternal';"
- указав вместо
https://ds.devr7.ruадрес вынесенного сервера документов (если адрес вынесенного ДС одноименный — нет необходимости менять), для примера, указан в запросе —Value"='https://ds.devr7.ru' - указав вместо
https://cddisk.devr7.ruссылку на адрес основного приложения Корпоративного сервера.
4.9.1.2. Секрет
На вынесенном сервере документов (установили в пункте 3) укажите секрет из запроса, по значению ключа «Key» = ‘files.docservice.secret’, в файле:/etc/r7-office/documentserver/local.json
Пример:
"secret": {
"inbox": {
"string": " " // в кавычках указать ключ из селекта п. 3.9, по значению ключа "Key" = 'files.docservice.secret'
},
"outbox": {
"string": " " // в кавычках указать ключ из селекта п. 3.9, по значению ключа "Key" = 'files.docservice.secret'
},
"session": {
"string": " " // в кавычках указать ключ из селекта п. 3.9, по значению ключа "Key" = 'files.docservice.secret'
},Перезапустите сервис DS (на вынесенном сервере документов) и проверьте статусы сервисов:
systemctl restart ds-* --all systemctl status ds-*
4.9.2. Отредактируйте файл /etc/nginx/sites-available/cddisk на сервере с ролью Р7 Диск
Добавьте запись allow в блоки location /api/v1/Documents/UploadCallback и location /api/v1/Link/ds:
location /api/v1/Documents/UploadCallback {
proxy_set_header host $host;
proxy_set_header X-real-ip $remote_addr;
proxy_set_header User-Agent $http_user_agent;
proxy_set_header X-forward-for $proxy_add_x_forwarded_for;
proxy_set_header X-Module Disk;
proxy_set_header X-Forwarded-Proto $scheme;
allow 127.0.0.1;
allow 192.168.25.1;
#allow 0.0.0.0;
deny all;
proxy_pass http://localhost:38033/api/v1/Documents/UploadCallback;
}
location /api/v1/Link/ds {
proxy_set_header host $host;
proxy_set_header X-real-ip $remote_addr;
proxy_set_header User-Agent $http_user_agent;
proxy_set_header X-forward-for $proxy_add_x_forwarded_for;
proxy_set_header X-Module Disk;
proxy_set_header X-Forwarded-Proto $scheme;
allow 127.0.0.1;
allow 192.168.25.1;
#allow 0.0.0.0;
deny all;
proxy_pass http://localhost:38033/api/v1/Link/ds;
}Где:
192.168.25.1— IP-адрес сервера DS.
4.9.3. Проверьте конфигурацию
sudo nginx -t
4.9.4. Перезапустите сервис nginx
systemctl restart nginx
4.9.5. Перезапустите cddisk
supervisorctl restart all
4.9.6. Отключите сервер документов на сервере с ролью Р7 Диск, если версия ниже 14000
systemctl stop ds-* systemctl disable ds-metrics.service ds-docservice.service ds-converter.service
4.9.7. Отредактируйте файл /etc/hosts на сервере с ролью Р7 Диск
В файле /etc/hosts на сервере с ролью Р7 Диск удалите запись с ds.r7.ru:
127.0.0.1 ds.devr7.ru
5. Роль Search
При включённой службе firewalld необходимо выполнить настройку для сервиса Поиска:
# Добавляем службу: sudo firewall-cmd --permanent --zone=public --add-port=2664/tcp # Перезапускаем службу firewalld: sudo firewall-cmd --reload # Проверяем правила для зоны public: sudo firewall-cmd --zone=public --list-all
5.1. Установите зависимости
sudo wget -O - https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc.gpg > /dev/null sudo wget https://packages.microsoft.com/config/debian/10/prod.list -O /etc/apt/sources.list.d/microsoft-prod.list && sudo apt update sudo wget https://packages.microsoft.com/ubuntu/20.04/prod/pool/main/d/dotnet-host/dotnet-host-7.0.3-x64.deb && sudo apt -y install ./dotnet-host*.deb && sudo rm ./dotnet-host*.deb
Для версии 14752 и выше выполните установку следующих пакетов:
sudo apt install supervisor aspnetcore-runtime-6.0 aspnetcore-targeting-pack-6.0 dotnet-apphost-pack-6.0 dotnet-hostfxr-6.0 dotnet-runtime-6.0 dotnet-sdk-6.0 dotnet-templates-6.0 dotnet-targeting-pack-6.0
Для версий ниже:
sudo apt install supervisor aspnetcore-runtime-3.1 aspnetcore-targeting-pack-3.1 dotnet-apphost-pack-3.1 dotnet-hostfxr-3.1 dotnet-runtime-3.1 dotnet-runtime-deps-3.1 dotnet-sdk-3.1 dotnet-targeting-pack-3.1 libbinutils libltdl-dev libodbc1 m4 netstandard-targeting-pack-2.1 odbcinst odbcinst1debian2 unixodbc-dev
5.2. Перенесите конфигурационные файлы
5.2.1. Архивируйте их на ВМ с диском
Пример команды:
tar czvf search.tar.gz --selinux /opt/r7-office/SearchApi /var/log/r7-office/CDDisk/SearchApi /etc/supervisor /var/r7-office/searchindex
5.2.2. Перенесите архив удобным вам способом
Пример переноса через scp:
scp search.tar.gz ipВмПоиска:/root/
5.3. Создайте пользователя cddisk
# Сверяем пользователя и группу на ВМ с диском id cddisk # Вывод uid=119(cddisk) gid=131(cddisk) группы=131(cddisk) # Создаём группу и пользователя на ВМ с поиском groupadd -g 131 cddisk # Создаём пользователя с uid 119 и добавляем его в группу с gid 131 useradd -u 119 -g 131 cddisk
5.4. Распакуйте архив
tar xzvf search.tar.gz --selinux -C /
5.5. Измените конфигурацию supervisor
5.5.1. Удалите лишнее
cd /etc/supervisor/conf.d/ && rm cddisk-api.conf cddisk-filestorage.conf cddisk-registry.conf cddisk-ssoapi.conf cddisk-processing.conf
5.5.2. Измените файл
/etc/supervisor/conf.d/cddisk.conf приводим к виду:
[group:cddisk] programs=searchapi
5.5.3. Перезапустите службу
systemctl restart supervisor.service
5.5.4. Проверьте службу поиска
supervisorctl status all
5.6. Измените конфигурационные файлы для обращения сервисов к поиску
На ВМ с ролью Р7 Диск.
5.6.1. Измените на «IP_СЕРВЕРА_С_Поиском»
/opt/r7-office/Service.Registry/appsettings.json

Где:
192.168.26.188— IP-адрес сервера с установленным сервисом Поиска.
Аналогично внесите изменения в следующие файлы (для версий ниже 2.0.15.843):
/opt/r7-office/Api/appsettings.json /opt/r7-office/Processing/appsettings.json
5.6.2. Удалите конфигурационный файл
rm /etc/supervisor/conf.d/cddisk-searchapi.conf
Приведите к виду /etc/supervisor/conf.d/cddisk.conf:
[group:cddisk] programs=api,filestorage,processing,registry,apisso
5.6.3. Перезапустите supervisor
supervisorctl restart all
6. Роль NFS (опционально)
NFS-сервер возможно заменить на дополнительный примонтированный диск.
При включённой службе firewalld необходимо выполнить настройку для NFS.
# Добавляем службу: sudo firewall-cmd --permanent --zone=public --add-service=nfs # Перезапускаем службу firewalld: sudo firewall-cmd --reload # Проверяем правила для зоны public: sudo firewall-cmd --zone=public --list-all
6.1. Установите NFS
apt install nfs-kernel-server
6.2. Создайте каталог
mkdir -p /mnt/nfs/search mkdir /mnt/nfs/cddisk mkdir /mnt/nfs/ds
Где:
/mnt/nfs/search— каталог для файлов Сервера с сервисом Поиска;/mnt/nfs/cddisk— каталог для файлов Р7 Диск;/mnt/nfs/ds— каталог для файлов Сервера Документов.
6.3. Создайте пользователей ds и cddisk
6.3.1. Проверьте на ВМ с сервисом Поиска и ВМ с Р7 Диск uid и gid
id cddisk
Вывод:
root@kh-middle-p7disk:~# id cddisk uid=119(cddisk) gid=131(cddisk) группы=131(cddisk)
6.3.2. Проверьте на ВМ с Сервером документов uid и gid
id ds
Вывод:
root@kh-middle-p7ds:~# id ds uid=119(ds) gid=131(ds) группы=131(ds)
6.3.2.1. Измените gid и uid на ВМ с Сервером Документов
Так как uid и gid пользователя ds совпадают с uid и gid пользователя cddisk, необходимо изменить их: значения uid и gid должны быть уникальными для соответствующих пользователей и групп:
# Останавливаем службы systemctl stop ds-converter ds-docservice ds-metrics # Изменяем группу и права на каталог groupmod -g 1100 ds usermod -u 1100 -g 1100 ds # Обновляем права на каталоги chown -R ds:ds /var/lib/r7-office chown -R ds:ds /var/www/r7-office chown -R ds:ds /etc/r7-office chown -R ds:ds /var/log/r7-office # Запускаем сервисы systemctl start ds-converter ds-docservice ds-metrics
6.3.3. Создайте пользователя на сервере NFS
6.3.3.1. Для DS
# Создаём группу ds groupadd -g 1100 ds # Создаём пользователя ds и добавляем в группу useradd -u 1100 -g 1100 ds
6.3.3.2. Для Р7 Диска и Поиска
# Создаём группу cddisk groupadd -g 131 cddisk # Создаём пользователя cddisk и добавляем в группу useradd -u 119 -g 131 cddisk
6.4. Измените файл
sudo nano /etc/exports
6.4.1. Добавьте строки
# Сетевой каталог для Сервера документов /mnt/nfs/ds 192.168.25.1/32(rw,nohide,all_squash,anonuid=1100,anongid=1100,no_subtree_check) # Сетевые каталоги для сервера с Р7 Диск и сервера с сервисом Поиска /mnt/nfs/cddisk 192.168.25.2/32(rw,nohide,all_squash,anonuid=119,anongid=131,no_subtree_check) /mnt/nfs/search 192.168.25.3/32(rw,nohide,all_squash,anonuid=119,anongid=131,no_subtree_check)
Где:
192.168.25.1— IP-адрес сервера DS;192.168.25.2— IP-адрес сервера с Р7 Диск;192.168.25.3— IP-адрес сервера с сервисом Поиска.
6.4.2. Включите сетевые каталоги
sudo exportfs -ra
6.4.3. Обновите права на каталоги
chown cddisk:cddisk /mnt/nfs/cddisk chown cddisk:cddisk /mnt/nfs/search chown ds:ds /mnt/nfs/ds
7. Подключение сетевых каталогов
7.1. Установите клиент NFS
sudo apt install nfs-common
7.2. Для ВМ с ролью DS
7.2.1. Остановите сервис
systemctl stop ds-converter ds-docservice ds-metrics
7.2.2. Пропишите в fstab сетевой каталог
192.168.25.4:/mnt/nfs/ds /var/lib/r7-office/documentserver/App_Data/cache nfs defaults 0 0
Где:
192.168.25.4— IP-адрес NFS-сервера;/mnt/nfs/ds— сетевой каталог на NFS-сервере;/var/lib/r7-office/documentserver/App_Data/cache— куда монтируем сетевой каталог на сервере с DS.
7.2.3. Скопируйте файлы
cd /var/lib/r7-office/documentserver/App_Data/cache mkdir /tmp/backup_ds cp -pr ./ /tmp/backup_ds
7.2.4. Примонтируйте и скопируйте файлы
cd /tmp/backup_ds mount -a cp -pr ./ /var/lib/r7-office/documentserver/App_Data/cache
7.2.5. Запустите сервисы
systemctl start ds-converter ds-docservice ds-metrics
7.2.6. Проверьте работу редактирования
Убедитесь, что файлы создаются на NFS-сервере:

7.3. Для ВМ с ролью Р7 Диск
7.3.1. Остановите сервисы
supervisorctl stop all
7.3.2. Пропишите в fstab
192.168.25.4:/mnt/nfs/cddisk /var/r7-office nfs defaults 0 0
Где:
192.168.25.4— IP-адрес NFS-сервера;/mnt/nfs/cddisk— сетевой каталог на NFS-сервере;/var/r7-office— куда монтируем сетевой каталог на сервере с Р7 Диск.
7.3.3. Скопируйте файлы
cd /var/r7-office mkdir /tmp/backup_cddisk cp -pr ./ /tmp/backup_cddisk
7.3.4. Примонтируйте и скопируйте файлы
cd /tmp/backup_cddisk mount -a cp -pr ./ /var/r7-office
7.3.5. Запустите сервисы
supervisorctl start all
7.3.6. Проверьте работу портала и сохранение документов
7.3.6.1. Создайте файл и отредактируйте его

7.3.6.2. Проверьте его сохранение

7.4. Для ВМ с Сервисом Поиска
7.4.1. Остановите сервис
supervisorctl stop all
7.4.2. Пропишите в fstab сетевой каталог
192.168.25.4:/mnt/nfs/search /var/r7-office/searchindex nfs defaults 0 0
Где:
192.168.25.4— IP-адрес NFS-сервера;/mnt/nfs/search— сетевой каталог на NFS-сервере;/var/r7-office/searchindex— куда монтируем сетевой каталог на сервере с сервисом Поиска.
7.4.3. Скопируйте файлы
cd /var/r7-office/searchindex mkdir /tmp/backup_search cp -pr ./ /tmp/backup_search
7.4.4. Примонтируйте и скопируйте файлы
cd /tmp/backup_search mount -a cp -pr ./ /var/r7-office/searchindex
7.4.5. Запустите сервисы
supervisorctl start all
7.4.6. Проверьте работу поиска
7.4.6.1. Введите имя файла в строке поиска
Должен выдать его в результате:

8. Настройка потоковой репликации Master-Slave PostgreSQL
Инструкция: Настройка потоковой репликации PostgreSQL ↗.
При включённой службе firewalld необходимо выполнить настройку для PostgreSQL.
# Добавляем службу: sudo firewall-cmd --permanent --zone=public --add-service=postgresql # Перезапускаем службу firewalld: sudo firewall-cmd --reload # Проверяем правила для зоны public: sudo firewall-cmd --zone=public --list-all
8.1. Установите PostgreSQL на Slave
sudo apt update && sudo apt install postgresql -y
8.2. Проверьте установленную версию PostgreSQL
После установки проверьте, какая именно версия СУБД была развёрнута в системе:
psql -V
Запомните полученную версию (например, 11 или 13). Во всех дальнейших шагах инструкции обязательно заменяйте цифру «15» в путях к файлам и командах на вашу актуальную версию.
8.3. Измените postgresql.conf
sudo nano /etc/postgresql/15/main/postgresql.conf
Приведите параметры к виду:
listen_addresses = 'localhost,192.168.26.71' # what IP address(es) to listen on; port = 5432
Где:
localhost,192.168.26.71— адреса, которые слушает сервис;5432— порт, который сервис прослушивает.
8.4. На Master
8.4.1. Создайте пользователя
su - postgres createuser --replication -P repluser
Система запросит пароль. Сохраните его для дальнейшего использования.
8.4.1.1. Проверьте расположение конфигурационного файла
psql -c 'SHOW config_file;'
В нашем случае это:
/etc/postgresql/15/main/postgresql.conf
8.4.2. Выйдите из оболочки postgres
exit
8.4.3. Измените postgresql.conf
sudo nano /etc/postgresql/15/main/postgresql.conf
Отредактируйте следующие параметры:
wal_level = replica max_wal_senders = 2 max_replication_slots = 2 hot_standby = on hot_standby_feedback = on
Где:
wal_level— указывает, сколько информации записывается в WAL (журнал операций, который используется для репликации);max_wal_senders— лимит одновременных подключений для передачи логов, на каждый серверSlaveтребуется 2 подключения;max_replication_slots— максимальное число слотов репликации;hot_standby— определяет, можно или нет подключаться кPostgreSQLдля выполнения запросов в процессе восстановления;hot_standby_feedback— определяет, будет или нет серверslaveсообщатьмастеруо запросах, которые он выполняет.
8.4.4. Измените файл pg_hba.conf
sudo nano /etc/postgresql/15/main/pg_hba.conf
Добавьте следующие строки:
host replication repluser 127.0.0.1/32 md5 host replication repluser 192.168.26.48/32 md5 host replication repluser 192.168.26.71/32 md5
- Данной настройкой Вы разрешаете подключение к базе данных
replicationпользователюrepluserс локального сервера (localhostи192.168.26.48) и сервера192.168.26.71.
8.4.5. Перезапустите службу PostgreSQL
systemctl restart postgresql
8.5. На Slave
8.5.1. Проверьте пути до конфигурационных файлов
su - postgres -c "psql -c 'SHOW data_directory;'"
Вывод:

su - postgres -c "psql -c 'SHOW config_file;'"
Вывод:

8.5.2. Остановите PostgreSQL
systemctl stop postgresql
8.5.3. Сделайте бэкап
tar -czvf /tmp/data_pgsql.tar.gz /var/lib/postgresql/15/main
8.5.4. Удалите содержимое
rm -rf /var/lib/postgresql/15/main/*
8.5.5. Запустите репликацию с Master на Slave
su - postgres -c "pg_basebackup --host=192.168.26.48 --username=repluser --pgdata=/var/lib/postgresql/15/main --wal-method=stream --write-recovery-conf"
Где:
192.168.26.48— IP-адресмастера;/var/lib/postgresql/15/main— путь до каталога с данными.
После ввода команды система запросит пароль для созданной ранее учётной записи repluser — введите его.
Начнётся процесс клонирования данных.
8.5.6. Запустите PostgreSQL
systemctl start postgresql
8.6. Проверка репликации
8.6.1. Посмотрите статус
Статус работы репликации можно посмотреть следующими командами.
8.6.1.1. На Master
select * from pg_stat_replication;

8.6.1.2. На Slave
select * from pg_stat_wal_receiver;

8.6.2. Создайте тестовую базу
8.6.2.1. На Master зайдите в командную оболочку Postgres
su - postgres -c "psql"
8.6.2.2. Создайте новую базу данных
CREATE DATABASE repltest ENCODING='UTF8';
8.6.2.3. На Slave посмотрите список баз
Выполните команду:
sudo -u postgres psql -c '\l'
Вы должны увидеть среди баз ту, которую создали на первичном сервере:

Настройка завершена.













