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

Установка Middle архитектуры Корпоративного сервера 2024 на Альт Сервер 10.1

Обновлено: 04.03.26

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

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

Для установки потребуется 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

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

  • 6 Виртуальных машин (без slave и файлового сервера — 4);
  • Для сервера NFS дополнительно 3 диска (для Р7 Диск, для Сервера документов, для Сервера поиска);
  • ТХ Машин, для тестирования, возможно использовать:
  • От 2 CPU;
  • От 4Гб RAM (для ролей Поиска и Р7-диска рекомендуем использовать от 8Гб);
  • От 20Гб свободного пространства на диске;
  • Более конкретные данные рассчитываются по обращению в ТП;
  • Отключение или перевод selinux в режим permissive для корректной работы сервисов.
Установка Middle архитектуры Корпоративного сервера 2024 на Альт Сервер 10.1Важно

В состав дистрибутива Корпоративный сервер 2024 не включён модуль Р7 Графика. Для установки модуля Р7 Графика необходимо воспользоваться инструкциями, опубликованными в разделе: Р7 Графика > Установка ↗.

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.

# Добавляем службу:

firewall-cmd --permanent --zone=public --add-service=postgresql

# Перезапускаем службу firewalld:

firewall-cmd --reload

# Проверяем правила для зоны public:

firewall-cmd --zone=public --list-all

2.1. Установите PostgreSQL

apt-get update && apt-get install -y postgresql14-server

/etc/init.d/postgresql initdb

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

vim /var/lib/pgsql/data/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.3. Измените pg_hba.conf

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

Добавьте строку:

host    cddisk          cddisk          192.168.26.99/24        trust

host    pagesdb         cddisk          192.168.26.99/24        trust

host    cddisk          postgres        192.168.26.99/24        trust

host    pagesdb         postgres        192.168.26.99/24        trust

host    postgres        postgres        192.168.26.99/24        trust

Где:

  • cddisk — имя базы данных р7-диска;
  • cddisk — имя пользователя для р7-диска;
  • pagesdb — имя базы данных для модуля Р7 Страницы;
  • 192.168.26.99 — адрес, с которого будет подключаться р7-диск.

2.4. Запустите службу БД и добавьте в автозагрузку

systemctl enable postgresql.service --now

2.5. Создайте пользователя и БД

su - postgres -s /bin/bash -c "psql -c \"CREATE DATABASE cddisk;\""
su - postgres -s /bin/bash -c "psql -c \"CREATE USER cddisk WITH password 'cddisk';\""
su - postgres -s /bin/bash -c "psql -c \"GRANT ALL privileges ON DATABASE cddisk TO cddisk;\""
su - postgres -s /bin/bash -c "psql -c \"CREATE DATABASE pagesdb OWNER cddisk;\""
su - postgres -s /bin/bash -c "psql -c \"GRANT ALL privileges ON DATABASE pagesdb TO cddisk;\""

Где:

  • cddisk — имя БД для работы р7-диск;
  • cddisk — пользователь с доступом к БД cddisk;
  • cddisk — пароль от пользователя cddisk;
  • pagesdb — имя базы данных для модуля Р7 Страницы.

3. Роль DS

Уточнение

Актуальная инструкция на странице ↗.

Важно

При включенной службе firewalld необходимо выполнить настройку для DS.

# Добавляем службу:

firewall-cmd --permanent --zone=public --add-service=https

firewall-cmd --permanent --zone=public --add-service=http

# Перезапускаем службу firewalld:

firewall-cmd --reload

# Проверяем правила для зоны public:

firewall-cmd --zone=public --list-all

3.1. Установка зависимостей

sudo apt-get update && sudo apt-get install -y xorg-x11-font-utils cabextract

3.2. Установите NGINX

sudo apt-get install nginx

После этого отредактируйте конфигурационный файл NGINX /etc/nginx/nginx.conf, чтобы он выглядел следующим образом:

worker_processes 1;

error_log /var/log/nginx/error.log warn;

pid /var/run/nginx.pid;

events {

    worker_connections 1024;

}

http {

    include /etc/nginx/mime.types;

    default_type application/octet-stream;

    log_format main 'remote_addr - remote_user [time_local] "request" '

        'status body_bytes_sent "http_referer" '

        '"http_user_agent" "http_x_forwarded_for"';

    access_log /var/log/nginx/access.log main;

    sendfile on;

    #tcp_nopush on;

    keepalive_timeout 65;

    #gzip on;

    include /etc/nginx/sites-enabled/*;

    include /etc/nginx/sites-enabled.d/*;

}

3.3. Установка и настройка PostgreSQL

sudo apt-get install postgresql12 postgresql12-server -y

3.4. Инициализируйте базу данных PostgreSQL

sudo /etc/init.d/postgresql initdb

3.5. Запустите PostgreSQL

systemctl enable --now postgresql

Проверьте включён ли метод аутентификации «trust» для адреса localhost в формате IPv4 и IPv6:

Откройте файл /var/lib/pgsql/data/pg_hba.conf в текстовом редакторе:

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

Пример:

# "local" is for Unix domain socket connections only

local   all             all                                     trust

# IPv4 local connections:

host    all             all             127.0.0.1/32            ident на trust

# IPv6 local connections:

host    all             all             ::1/128                 ident на trust

# Allow replication connections from localhost, by a user with the

# replication privilege.

local   replication     all                                     trust

host    replication     all             127.0.0.1/32            trust

host    replication     all             ::1/128                 trust

Перезапустите сервис PostgreSQL:

sudo systemctl restart postgresql

sudo systemctl enable postgresql

3.6. Создайте БД и пользователя

sudo -u postgres psql -c "CREATE USER r7office WITH password 'r7office';"

sudo -u postgres psql -c "CREATE DATABASE r7office OWNER r7office;"

sudo -u postgres psql -c "GRANT ALL privileges ON DATABASE r7office TO r7office;"

3.7. Установите вспомогательных сервисов

sudo apt-get install rabbitmq-server redis -y

3.8. Запустите сервисы

sudo systemctl enable rabbitmq redis

sudo systemctl start rabbitmq redis

3.9. Установите дополнительные пакеты

apt-get install ca-certificates apt-https

3.10. Установка Сервера Документов

3.10.1. Добавьте репозиторий для установки зависимостей

apt-repo add "rpm https://alt-repo.r7-office.ru r7server/x86_64 r7server"

apt-get update

3.10.2. Установите пакета

apt-get install r7-office-documentserver-ee -y

3.11. Запустите DS

sudo systemctl start ds-docservice.service

sudo systemctl start ds-converter.service

sudo systemctl start ds-metrics.service

sudo systemctl enable ds-docservice.service

sudo systemctl enable ds-converter.service

sudo systemctl enable ds-metrics.service

sudo systemctl start nginx.service

sudo systemctl enable nginx.service

3.11.1. Настройка сервера документов

Запустите скрипт documentserver-configure.sh для конфигурирования:

bash documentserver-configure.sh

Вам будет предложено указать параметры подключения к PostgreSQL, Redis и RabbitMQ. Используйте следующие данные:

Для PostgreSQL:

  • Host: localhost;
  • Database:  r7office;
  • User: r7office;
  • Password: r7office.

Где:

  • host — ip сервера с PostgreSQL или его dns имя (в данном примере localhost);
  • Database — имя Базы Данных;
  • User — Имя пользователя;
  • Password — Пароль от пользователя.

Для AMQP:

  • Host: localhost;
  • User: guest;
  • Password: guest.

Где:

  • host — ip сервера с RabbitMQ или его dns имя (в данном примере localhost);
  • user — пользователь для подключения;
  • password — пароль от пользователя.

3.11.2. JWT_SECRET

Выполните:

documentserver-jwt-status.sh

Запомните значение JWT_SECRET, т.к. пригодится на шаге установки Р7 Диска.

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. Измените конфигурационный файл

    vim /etc/r7-office/documentserver/nginx/ds.conf

В разделе HTTPS host изменить строки:

# Закомментировать

#ssl on

# Изменить

ssl_certificate /var/www/r7-office/Data/ssl/имя_файла.crt;

ssl_certificate_key /var/www/r7-office/Data/ssl/имя_файла.key;

Где:

  • имя_файла — домен или произвольное название.

3.12.5. Проверьте конфигурацию

nginx -t

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

systemctl restart nginx

3.12.7. Запустите скрипт для обновления секрета storage

bash /usr/bin/documentserver-update-securelink.sh

3.13. Регистрация DS

Если вы приобрели Р7 Офис. Профессиональный. Сервер документов и получили файл license.lic. Вы можете поместить его в инсталляцию, для получения полной версии программы.

Если вы используете дистрибутив Linux на базе Debian, файл license.lic помещается в следующую папку:

/var/www/r7-office/Data/license.lic

Имя файла лицензии должно быть строго license.lic.

После этого ваша версия Р7 Офис. Профессиональный. Сервер документов станет зарегистрированной и полнофункциональной.

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 AltServer*.zip

4.4. Для HTTPS

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

Важно

Имя файла должно содержать название домена и расширение.

Например, для домена r7.ru имена файлов должны быть r7.ru.crt и r7.ru.key.

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

Потребуется использовать ssl сертификат типа wildcard с соответствующей А записью (пример, *.yourdomain.ru) на используемом DNS сервере в сети сервера.

Для интеграции Р7-Корпоративный сервер 2024 с Р7 Команда сертификат должен быть с шифрованием RSA.

4.5. Добавьте права на исполнение скрипту

chmod +x online_installer.sh

4.6. Запустите установку (В зависимости от версии дистрибутива, шаги могут отличаться)

./online_installer.sh

4.7. В процессе установки

4.7.1. Чистая установка

Если требуется выполнить чистую установку (удалит имеющуюся инсталляцию Р7 Диск и зависимости):

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

4.7.2. Установка СУБД на локальную ВМ

Install PostgreSQL:

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

4.7.3. Установка Сервера Документов

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

Если версия устанавливаемого корпоративного сервера 2024 ниже 14000, то для корректной установки Роли Р7 Диск требуется document-server. Поэтому во время установки будем использовать локальный документ сервер, а потом его вынесем на отдельную ВМ.

Установка Сервер Документов:

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

4.7.3.1. JWT Key Document Server

Укажите Секрет установленного Document Server.

  • Его значение сохраняли в п. 3.11.2, значение jwt-secret:

4.7.3.2. Пароль для базы данных DS

4.7.4. Установка CDDisk api & web

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

4.7.5. Выбрать PostgreSQL

  • Выберите PostgreSQL:

4.7.6. Создание БД

Выберите:

  • Нет:

4.7.7. Хост СУБД

Укажите ip сервера с СУБД развернутого ранее

4.7.7.1. Порт СУБД

Укажите port сервера с СУБД:

  • По умолчанию 5432, порт задавали в п.1.2:

4.7.7.2. Пользователь с правами создания БД

Укажите cddisk:

4.7.8. Пароль от пользователя cddisk

Укажите пароль пользователя cddisk, что был задан в п.2.5:

4.7.9. coremachinkey от Корпоративного сервера 2019

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

4.7.10. Настройка https

  • Выберите Да, если выполнили пункт 3.4;
  • В ином случае выберете Нет.

4.7.11. Укажите домен

  • Необходимо указать домен, в котором у Вас созданы записи.
Уточнение

Например, при домене r7.ru, необходимо создать запись cddisk.r7.ru.

В значении указываем именно r7.ru, не созданную А запись

4.7.11.1. Префиксы для модулей

Пример для Р7 Диск:

Например, если Вы хотите, чтобы открылся Р7 Диск по адресу disk.r7.ru ↗, то указать нужно именно disk, без указания домена.

Также, необходимо сделать соответствующую А запись в DNS.

4.7.11.2. Остальные префиксы укажите по аналогии и укажите в DNS необходимые записи по префиксам

4.7.12. Установить Р7 Почтовый сервер

  • Выбрать Нет:

4.7.13. Перезагрузка сервера

  • Ввести Да:

4.8. Интеграция корпоративного сервера 2024 с вынесенным сервером документов

Уточнение

Актуальная инструкция на странице ↗.

4.8.1. На сервере с БД (postgresql) (пункт 2) выведите информацию

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.8.1.1. Обновите на новые значения секрет (если требуется) и адрес сервера документов в БД
sudo -u postgres psql -d cddisk -c "UPDATE public.\"MessageSettings\" SET \"Value\"='https://ds.r7o.ru' WHERE \"Key\" = 'documentServerUrl';"
sudo -u postgres psql -d cddisk -c "UPDATE public.\"MessageSettings\" SET \"Value\"='https://cddisk.r7o.ru' WHERE \"Key\" = 'apiUrlInternal';"
  • Указав вместо https://ds.r7.ru адрес вынесенного сервера документов (если адрес вынесенного ДС одноименный — нет необходимости менять), для примера, указан в запросе — Value"='https://ds.r7.ru'
  • Указав вместо https://cddisk.r7.ru ссылку на основной модуль корпоративного сервера cddisk.
4.8.1.2. Секрет

На вынесенном сервере документов (установили в пункте 3.11.2) укажите секрет из запроса, по значению ключа «Key» = ‘files.docservice.secret’, в файле:/etc/r7-office/documentserver/local.json.

Пример:

"secret": {       
      "inbox": {
       "string": " "   // в кавычках указать ключ из селекта п. 3.11.2, по значению ключа "Key" = 'files.docservice.secret'       
   },
   "outbox": {
       "string": " "   // в кавычках указать ключ из селекта п. 3.11.2, по значению ключа "Key" = 'files.docservice.secret'
           },
   "session": {
       "string": " "   // в кавычках указать ключ из селекта п. 3.11.2, по значению ключа "Key" = 'files.docservice.secret'
           },

Перезапустите сервис DS (на вынесенном сервере документов) и проверьте статусы сервисов:

systemctl restart ds-* --all

systemctl status ds-*

4.8.2 Внесите правки на роли Р7-Диск в nginx конфигурацию и перезапустите cddisk

С версии 2025.4.6.16449 Корпоративного сервера потребуется внести правки в nginx в конфигурацию

/etc/nginx/sites-available/cddisk

/etc/nginx/sites-available/projects

/etc/nginx/sites-available/cdmail

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.112; #добавьте разрешение на ip адрес вынесенного сервера документов
    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.112; #добавьте разрешение на ip адрес вынесенного сервера документов
    deny all;
 
    proxy_pass http://localhost:38033/api/v1/Link/ds;
}
supervisorctl restart all

4.8.3. Отключите сервер документов на сервере с ролью Р7 Диск

systemctl stop ds-*

systemctl disable ds-metrics.service ds-docservice.service ds-converter.service

4.8.4. Отредактируйте файл /etc/hosts на сервере с ролью Р7 Диск

В файле /etc/hosts на сервере с ролью Р7 Диск удалите запись с ds.r7.ru:

127.0.0.1 ds.r7.ru

4.8.5. Проверьте работу сервера документов

Зайдите на портал Корпоративного сервера 2024 и создайте документ. Проверьте редактирование.

5. Роль Поиск

Важно

При включенной службе firewalld необходимо выполнить настройку для nfs.

# Добавляем службу:

firewall-cmd --permanent --zone=public --add-port=2664/tcp

# Перезапускаем службу firewalld:

firewall-cmd --reload

# Проверяем правила для зоны public:

firewall-cmd --zone=public --list-all

5.1. Установите зависимости

5.1.1. Установите дополнительные пакеты

apt-get update && apt-get install ca-certificates apt-https

5.1.2. Установите пакеты необходимые для запуска сервиса Search

Для версии 14752 и выше выполните установку следующих пакетов:

sudo apt-get install supervisor dotnet-6.0 dotnet-apphost-pack-6.0 dotnet-aspnetcore-runtime-6.0 dotnet-aspnetcore-targeting-pack-6.0 dotnet-common dotnet-host dotnet-hostfxr-6.0 dotnet-runtime-6.0 dotnet-sdk-6.0 dotnet-targeting-pack-6.0 -y

Для версий ниже:

sudo apt-get install dotnet-aspnetcore-3.1 dotnet-sdk-3.1 supervisor -y

5.2. Перенесите конфигурационные файлы

5.2.1. Архивируйте их на сервере с ролью Р7 Диск

Пример команды:

tar czvf search.tar.gz --selinux /opt/r7-office/SearchApi /var/log/r7-office/CDDisk/SearchApi /var/log/r7-office/CDDisk/Bsa.Search.Api.Host /etc/supervisord.d /var/r7-office/searchindex

5.2.2. Перенесите удобным вам способом архив на сервер с ролью search

Пример переноса через scp:

scp search.tar.gz ipВмПоиска:/root/

5.2.3. Узнайте uid и gid пользователя cddisk на сервере с ролью Р7 Диск

id cddisk

Вывод:

uid=479(cddisk) gid=459(cddisk) groups=459(cddisk)

5.2.4. Удалите конфигурационный файл на сервере с ролью Р7 Диск

rm /etc/supervisord.d/cddisk-searchapi.ini

5.2.5. Отредактируйте файл

vim /etc/supervisord.d/cddisk.ini

Приведите к виду:

[group:cddisk]

programs=api,filestorage,processing,registry,apisso

5.2.6. Отредактируйте файл сервиса Registry

vi /opt/r7-office/Service.Registry/appsettings.json

Приведите параметры к виду:

.....

    },

    {

      "id": "ISearchService",

      "host": "http://192.168.27.218:2664"

    }

  ],

  "ServiceRegistry": {

    "Host": "http://localhost:7777"

  }

}

Где:

  • 192.168.27.218 — ip ВМ, где находится сервис search.

Если серверов с сервисом поиска несколько, то вид будет следующим:

.....

    },

    {

      "id": "ISearchService",

      "host": "http://192.168.27.218:2664"

    },

    {

      "id": "ISearchService",

      "host": "http://192.168.27.219:2664"

    }

  ],

  "ServiceRegistry": {

    "Host": "http://localhost:7777"

  }

}

Где:

  • 192.168.27.218, 192.168.27.219 — ip ВМ, где находится сервис search.

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

systemctl restart supervisord

supervisorctl restart all

5.3. На сервере с ролью Search

4.3.1. Создайте группу и пользователя cddisk

# Создаём группу и пользователя на сервере с поиском

groupadd -g 459 cddisk

# Создаём пользователя с uid 479 и добавляем его в группу с gid 459

useradd -u 479 -g 459 cddisk

Где uid=479 и gid=459, значения, которые мы узнали в пункте 5.2.3.

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

tar xzvf search.tar.gz --selinux -C /

5.3.3. Удалите лишнее конфигурационные файлы /etc/supervisord.d

rm -Rf /etc/supervisord.d/{cddisk-api,cddisk-processing,cddisk-filestorage,cddisk-registry,cddisk-ssoapi}.ini

5.3.4. Измените файл /etc/supervisord.d/cddisk.ini

Приведите к виду:

[group:cddisk]

programs=searchapi

5.3.5. Перезапустите службу

systemctl restart supervisord.service

supervisorctl status all

5.4. Проверьте работу поиска

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

Для выдачи результата понадобится время, т.к. сервис только начал работу:

5.4.2. Проверьте дополнительно трафик

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

tcpdump port 2664

Вывод:

6. Роль NFS (опционально)

Уточнение

NFS сервер возможно заменить на дополнительный примонтированный диск.

Важно

При включенной службе firewalld необходимо выполнить настройку для nfs.

# Добавляем службу:

firewall-cmd --permanent --zone=public --add-service=nfs

# Перезапускаем службу firewalld:

firewall-cmd --reload

# Проверяем правила для зоны public:

firewall-cmd --zone=public --list-all

6.1. Установите nfs и запустите

apt-get install nfs-server -y

systemctl enable nfs

systemctl start nfs

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@sabrr-search-alt10-1 var]# id cddisk

uid=479(cddisk) gid=459(cddisk) groups=459(cddisk)

6.3.2. Проверьте на ВМ с Сервером документов uid и gid

id ds

Вывод:

[root@sabrr-ds-alt10-1 ~]# id ds

uid=480(ds) gid=459(ds) groups=459(ds)
6.3.2.1. Измените gid и uid на ВМ с Сервером Документов

Если uid или gid пользователя ds совпадает с cddisk, то обновляем значения, потому что значение gid и uid должны быть уникальными для каждой группы и пользователя;:

# Останавливаем службы

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 /var/www/r7-office /etc/r7-office /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 459 cddisk

# Создаём пользователя cddisk и добавляем в группу

useradd -u 479 -g 459 cddisk

6.4. Измените файл

vim /etc/exports

6.4.1. Добавьте строки

# Шара для сервера с Сервером документов

/mnt/nfs/ds 192.168.25.1/32(rw,nohide,all_squash,anonuid=1100,anongid=1100,no_subtree_check)

# Шары для сервера с CDDISK и сервера с сервисом поиска

/mnt/nfs/cddisk 192.168.25.2/32(rw,nohide,all_squash,anonuid=479,anongid=459,no_subtree_check)

/mnt/nfs/search 192.168.25.3/32(rw,nohide,all_squash,anonuid=479,anongid=459,no_subtree_check)

Где:

  • 192.168.25.1 — ip сервера DS;
  • 192.168.25.2 — ip сервера с Р7 Диск;
  • 192.168.25.3 — ip сервера с сервисом Поиска/.

6.4.2. Обновите права на каталоги

chown cddisk:cddisk /mnt/nfs/cddisk

chown cddisk:cddisk /mnt/nfs/search

chown ds:ds /mnt/nfs/ds

6.4.3. Включите сетевые каталоги

exportfs -ra

7. Подключение сетевых каталогов

7.1. Установите клиент nfs на северах с ролями DS, Р7 Диск, Search

apt-get install nfs-utils

7.2. Для ВМ с ролью DS

7.2.1. Остановите сервис

systemctl stop ds-converter ds-docservice ds-metrics

7.2.2. Пропишите в fstab сетевой каталог

192.168.27.165:/mnt/nfs/ds /var/lib/r7-office/documentserver/App_Data/cache nfs defaults 0 2

Где:

  • 192.168.27.165 — 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 2

Где:

  • 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 2

Где:

  • 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

Важно

При включенной службе firewalld необходимо выполнить настройку для PostgreSQL.

# Добавляем службу:

firewall-cmd --permanent --zone=public --add-service=postgresql

# Перезапускаем службу firewalld:

firewall-cmd --reload

# Проверяем правила для зоны public:

firewall-cmd --zone=public --list-all

8.1. Установите PostgreSQL на Slave

apt-get update && apt-get install -y postgresql14-server

/etc/init.d/postgresql initdb

8.2. Измените postgresql.conf

vim /var/lib/pgsql/data/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.2.1. Перезапустите PostgreSQL

systemctl enable postgresql

systemctl restart postgresql

8.3. На Master

8.3.1. Создайте пользователя

su - postgres -s /bin/bash

createuser --replication -P repluser

Запросит ввод пароля для новой роли, сохраните его.

8.3.1.1. Проверьте расположение конфигурационного файла
psql -c 'SHOW config_file;'

В нашем случае это:

/var/lib/pgsql/data/postgresql.conf

8.3.2. Выйдите из оболочки postgres

exit

8.3.3. Измените postgresql.conf

vim /var/lib/pgsql/data/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;
  • max_replication_slots — максимальное число слотов репликации;
  • hot_standby — определяет, можно или нет подключаться к postgresql для выполнения запросов в процессе восстановления;
  • hot_standby_feedback — определяет, будет или нет сервер slave сообщать мастеру о запросах, которые он выполняет.

8.3.4. Измените файл pg_hba.conf

vim /var/lib/pgsql/data/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.3.5. Перезапустите службу postgresql

systemctl restart postgresql

8.4. На Slave

8.4.1. Проверьте пути до конфигурационных файлов

sudo -u postgres psql -c 'SHOW data_directory;'

Вывод:

sudo -u postgres psql -c 'SHOW config_file;'

Вывод:

8.4.2. Остановите PostgreSQL

systemctl stop postgresql

8.4.3. Сделайте бэкап

tar -czvf /tmp/data_pgsql.tar.gz /var/lib/pgsql/data

8.4.4. Удалите содержимое

rm -rf /var/lib/pgsql/data/*

8.4.5. Запустите репликацию с Master на Slave

sudo -u postgres pg_basebackup --host=192.168.26.48 --username=repluser --pgdata=/var/lib/pgsql/data --wal-method=stream --write-recovery-conf

Где:

  • 192.168.26.48 — IP-адрес мастера;
  • /var/lib/pgsql/data — путь до каталога с данными.

После ввода команды система запросит пароль для созданной ранее учетной записи repluser — введите его.

Начнется процесс клонирования данных.

8.4.6. Запустите PostgreSQL

systemctl start postgresql

8.5. Проверка репликации

8.5.1. Посмотрите статус

Статус работы репликации можно посмотреть следующими командами.

8.5.1.1. На Master
sudo -u postgres -s psql
select * from pg_stat_replication;
8.5.1.2. На Slave
sudo -u postgres -s psql
select * from pg_stat_wal_receiver;

8.5.2. Создайте тестовую базу

8.5.2.1. На Master зайдите в командную оболочку Postgres
sudo -u postgres -s psql
8.5.2.2. Создайте новую базу данных
CREATE DATABASE repltest ENCODING='UTF8';
8.5.2.3. На Slave посмотрите список баз

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

sudo -u postgres -s psql -c '\l'

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

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

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

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

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