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

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

Обновлено: 25.12.25
Обратите внимание

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

В состав дистрибутива Корпоративный сервер 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 '3595remote_addr - 3595remote_user [3595time_local] "3595request" '

        '3595status 3595body_bytes_sent "3595http_referer" '

        '"3595http_user_agent" "3595http_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.

  • Его значение сохраняли в п. 2.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.4:

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 ссылку на сервер документов.
4.8.1.2. Секрет

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

Пример:

"secret": {       

      "inbox": {

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

   },

   "outbox": {

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

           },

   "session": {

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

           },

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

systemctl restart ds-* --all

systemctl status ds-*

4.8.2. Перезапустите cddisk

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 supervisor.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=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. Обновите права на каталоги

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

systemctl stop ds-converter ds-docservice ds-metrics

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.165ip сервера 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.4ip сервера 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.4ip сервера 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 /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 = 1

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
select * from pg_stat_replication;
8.5.1.2. На Slave
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'

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

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