Содержание

0. Cхема

Установка для высоконагруженных систем Корпоративный сервер 2024, архитектура middle на ОС Astra Linux 1.7.4 Орел

1. Роль 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

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

sudo apt update && sudo apt install postgresql -y

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

sudo nano /etc/postgresql/11/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 — порт, который сервис прослушивает.

1.3. Измените pg_hba.conf

sudo nano /etc/postgresql/11/main/pg_hba.conf

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

host cddisk cddisk 192.168.26.99/32 md5

Где

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

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

sudo -i -u postgres psql -c 'CREATE DATABASE cddisk;'
sudo -i -u postgres psql -c "CREATE USER cddisk WITH password 'Rtyh&t6djsk123$';"
sudo -i -u postgres psql -c 'GRANT ALL privileges ON DATABASE cddisk TO cddisk;'
sudo -i -u postgres psql -c 'ALTER DATABASE cddisk OWNER TO cddisk;'

Где

  • cddisk — имя БД для работы р7диск;
  • cddisk — пользователь с доступом к БД cddisk;
  • Rtyh&t6djsk123$ — пароль от пользователя cddisk.

1.5. Перезапустите PostgreSQL

sudo systemctl restart postgresql

2. Роль 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

2.1. Добавьте репозиторий

sudo echo "deb https://download.r7-office.ru/repo/debian squeeze main" | sudo tee /etc/apt/sources.list.d/r7-office.list

2.2. Добавьте ключ к репозиторию

sudo curl -s https://download.r7-office.ru/repo/gpgkey/r7-office.gpg.key | sudo apt-key add -

2.3. Обновите список пакетов

sudo apt update

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

sudo apt install postgresql -y

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

sudo systemctl enable --now postgresql

2.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;"

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

sudo apt install rabbitmq-server redis-server -y

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

sudo systemctl enable --now rabbitmq-server
sudo systemctl enable --now redis-server

2.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 — пользователь, созданный в п.2.6;
  • db-name — имя базы данных, созданной в п.2.6;
  • jwt-header — заголовок HTTP, который будет использоваться для отправки токена исходящего запроса;
  • jwt-enabled — определяет, включены ли токены или нет;
  • jwt-secret — определяет параметры секретного ключа для генерации токена сеанса.

2.10. Установка DS

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

sudo echo "deb https://deb.debian.org/debian/ buster main contrib non-free" > /etc/apt/sources.list.d/buster.list

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

sudo apt update && sudo apt install r7-office-documentserver-ee -y

2.10.3. Отключите репозиторий

echo "# deb https://deb.debian.org/debian/ buster main contrib non-free" > /etc/apt/sources.list.d/buster.list && sudo apt update

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

sudo systemctl enable --now ds-docservice.service
sudo systemctl enable --now ds-converter.service
sudo systemctl enable --now ds-metrics.service

2.12. Переведите на https

2.12.1. Создайте директорию

sudo mkdir /var/www/r7-office/Data/ssl

2.12.2. Поместите сертификат и ключ в таком виде

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

Где

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

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

2.12.4. Измените конфигурационный файл

sudo nano /etc/r7-office/documentserver/nginx/ds.conf
2.12.4.1. Измените строки
# Закомментировать
#ssl on
# Изменить
ssl_certificate /var/www/r7-office/Data/ssl/имя_файла.crt;
ssl_certificate_key /var/www/r7-office/Data/ssl/имя_файла.key;

Где,

  • имя_файла — домен или произвольное название.
2.12.4.2. Запустите скрипт для обновления секрета storage
sudo bash /usr/bin/documentserver-update-securelink.sh

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

sudo nginx -t

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

systemctl restart nginx

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

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

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

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

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

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

3. Роль Р7-Диск (проверено на версии 2.0.15.843)

Актуальная инструкция на сайте
https://support.r7-office.ru/category/r7disk/install-r7server/

При включенной службе 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

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

3.2. Разметите архив в /mnt

3.3. Распакуйте

unzip CDinstall_*.zip

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

cd CDDiskPack/CDinstall/

3.5. Для HTTPS

Если требуется настройка HTTPS, то, перед установкой, скопируйте crt и key файлы в папку CDDiskPack/CDinstall/sslcert.

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

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

chmod +x install-web.sh

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

./install-web.sh

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

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

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

  • Выберите Да

Установка для высоконагруженных систем Корпоративный сервер 2024, архитектура middle на ОС Astra Linux 1.7.4 Орел

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

PostgreSQL будет на другой ВМ:

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

Установка для высоконагруженных систем Корпоративный сервер 2024, архитектура middle на ОС Astra Linux 1.7.4 Орел

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

Сервер Документов находится на другой ВМ, то:

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

Установка для высоконагруженных систем Корпоративный сервер 2024, архитектура middle на ОС Astra Linux 1.7.4 Орел

3.7.1.3.1. URL Document Server

Укажите URL (А запись вида http://ds.example.ru или https), по которому открывается Document Server

3.7.1.3.2. JWT Key Document Server

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

Его задавали в п. 2.9 значение jwt-secret (в примере используется значение 123QWEasddsaEWQ321)

3.7.1.4. Установка CDDisk api & web
  • Выберите Да
3.7.1.5. Выбрать PostgreSQL
  • Выберите PostgreSQL

Установка для высоконагруженных систем Корпоративный сервер 2024, архитектура middle на ОС Astra Linux 1.7.4 Орел

3.7.1.6. Создание БД
  • Выберите Нет

Установка для высоконагруженных систем Корпоративный сервер 2024, архитектура middle на ОС Astra Linux 1.7.4 Орел

3.7.1.7. Хост СУБД

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

Установка для высоконагруженных систем Корпоративный сервер 2024, архитектура middle на ОС Astra Linux 1.7.4 Орел

3.7.1.7.1. Порт СУБД

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

  • По умолчанию 5432, порт задавали в п.1.2
3.7.1.7.2. Пользователь с правами создания БД

По умолчанию: postgres

  • Укажите cddisk

Установка для высоконагруженных систем Корпоративный сервер 2024, архитектура middle на ОС Astra Linux 1.7.4 Орел

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

По умолчанию: postgres

  • Укажите cddisk
3.7.1.7.4. Пользователь СУБД

Укажите пользователя сервера с СУБД, что был задан в п.1.4

  • По умолчанию: cddisk
3.7.1.8. Пароль от пользователя cddisk

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

Установка для высоконагруженных систем Корпоративный сервер 2024, архитектура middle на ОС Astra Linux 1.7.4 Орел

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

Установка для высоконагруженных систем Корпоративный сервер 2024, архитектура middle на ОС Astra Linux 1.7.4 Орел

3.7.1.10. Настройка https
  • Выберите Да, если выполнили пункт 3.5
  • В ином случае выберете Нет

Установка для высоконагруженных систем Корпоративный сервер 2024, архитектура middle на ОС Astra Linux 1.7.4 Орел

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

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

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

Установка для высоконагруженных систем Корпоративный сервер 2024, архитектура middle на ОС Astra Linux 1.7.4 Орел

3.7.1.11.1. Укажите префикс модуля Р7-Диск

Установка для высоконагруженных систем Корпоративный сервер 2024, архитектура middle на ОС Astra Linux 1.7.4 Орел

Можно сменить префикс «cddisk» на любое название, кроме зарезервированных «admin», «cdmail» и «calendar».,

3.7.1.11.2. Укажите префикс модуля Р7-Админ

Установка для высоконагруженных систем Корпоративный сервер 2024, архитектура middle на ОС Astra Linux 1.7.4 Орел

Можно сменить префикс «admin» на любое название, кроме заданного выше и зарезервированных «cdmail» и «calendar».

3.7.1.11.3. Укажите префикс модуля Р7-Почта

Установка для высоконагруженных систем Корпоративный сервер 2024, архитектура middle на ОС Astra Linux 1.7.4 Орел

Можно сменить префикс «cdmail» на любое название, кроме заданного выше и зарезервированных и «calendar».

3.7.1.11.4. Укажите префикс модуля Р7-Календарь

Установка для высоконагруженных систем Корпоративный сервер 2024, архитектура middle на ОС Astra Linux 1.7.4 Орел

Можно сменить префикс «calendar» на любое название, кроме заданных выше.

3.7.1.12. Установить Р7 Почтовый сервер
  • Выбрать Нет

Установка для высоконагруженных систем Корпоративный сервер 2024, архитектура middle на ОС Astra Linux 1.7.4 Орел

3.8. Зайдите в БД

Данный пункт требуется выполнять, если Вы допустили ошибку в п.2.9, п.3.7.1.3.1 и п.3.7.1.3.2 и указали не верный Секрет и URL или просто хотите обновить данные для повышения безопасности.

psql -h<IP_СЕРВЕР_С_БД> -Ucddisk cddisk

3.8.1. Обновите данные DS

3.8.1.1. URL DS
UPDATE public."MessageSettings" SET "Value"='https://dsmiddle.devr7.ru' WHERE "Key" = 'documentServerUrl';
3.8.1.2. Секрет

Находится в файле /etc/r7-office/documentserver/local.json

UPDATE public."MessageSettings" SET "Value"='Thfv463({})<mfnf567^N' WHERE "Key" = 'files.docservice.secret';

Установка для высоконагруженных систем Корпоративный сервер 2024, архитектура middle на ОС Astra Linux 1.7.4 Орел

В данном примере секрет отличается, т.к. их обновили на отличные в п.2.9 и п.3.7.1.3.2. Если Вы не допустили ошибку, то изменять ничего не нужно.

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

supervisorctl restart all

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

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

4. Роль Search

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

# Добавляем службу:
sudo firewall-cmd --permanent --zone=public --add-port=2664/tcp
  
# Перезапускаем службу firewalld:
sudo firewall-cmd --reload
  
# Проверяем правила для зоны public:
sudo firewall-cmd --zone=public --list-all

4.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
 
sudo apt install supervisor aspnetcore-runtime-3.1 aspnetcore-targeting-pack-3.1 autoconf automake autotools-dev binutils binutils-common binutils-x86-64-linux-gnu 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

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

4.2.1. Архивируйте их на ВМ с диском

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

tar czvf search.tar.gz --selinux /opt/r7-office/SearchApi /var/log/r7-office/CDDisk/SearchApi /etc/supervisor /var/r7-office/searchindex

4.2.2. Перенесите удобным вам способом архив

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

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

4.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

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

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

4.5. Измените конфигурацию supervisor

4.5.1. Удалите лишнее

cd /etc/supervisor/conf.d/ && rm cddisk-api.conf cddisk-filestorage.conf cddisk-registry.conf cddisk-ssoapi.conf cddisk-processing.conf

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

/etc/supervisor/conf.d/cddisk.conf приводим к виду

[group:cddisk]
programs=searchapi

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

systemctl restart supervisor.service

4.5.4. Проверьте службу поиска

supervisorctl status all

4.6. Измените конфигурационные файлы для обращения сервисов к поиску

На ВМ с ролью Р7-Диск

4.6.1. Измените на «IP_СЕРВЕРА_С_Поиском»

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

Установка для высоконагруженных систем Корпоративный сервер 2024, архитектура middle на ОС Astra Linux 1.7.4 Орел

Где

  • 192.168.26.188 — IP сервер с установленным сервисом Поиска.

Также делаем и тут (для версий, ниже 2.0.15.843)

/opt/r7-office/Api/appsettings.json
/opt/r7-office/Processing/appsettings.json

4.6.2. Удалите конфигурационный файл

rm /etc/supervisor/conf.d/cddisk-searchapi.conf

Приведите к виду /etc/supervisor/conf.d/cddisk.conf

[group:cddisk]
programs=api,filestorage,processing,registry,apisso

4.6.3. Перезапустите supervisor

systemctl restart supervisor.service
supervisorctl restart all

5. Роль 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

5.1. Установите nfs

apt install nfs-kernel-server

5.2. Создайте каталог

mkdir -p /mnt/nfs/search
mkdir /mnt/nfs/cddisk
mkdir /mnt/nfs/ds

Где

  • /mnt/nfs/search — каталог для файлов Сервера с сервисом Поиска;
  • /mnt/nfs/cddisk — каталог для файлов Р7-Диск;
  • /mnt/nfs/ds — каталог для файлов Сервера Документов.

5.3. Создайте пользователей ds и cddisk

5.3.1. Проверьте на ВМ с сервисом Поиска и ВМ с Р7-Диск uid и gid

id cddisk

Вывод:

root@kh-middle-p7disk:~# id cddisk
uid=119(cddisk) gid=131(cddisk) группы=131(cddisk)

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

id ds

Вывод:

root@kh-middle-p7ds:~# id ds
uid=119(ds) gid=131(ds) группы=131(ds)
5.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
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

5.3.3. Создайте пользователя на сервере NFS

5.3.3.1. Для DS
# Создаём группу ds
groupadd -g 1100 ds
 
# Создаём пользователя ds и добавляем в группу
useradd -u 1100 -g 1100 ds
5.3.3.2. Для Р7-Диска и Поиска
# Создаём группу cddisk
groupadd -g 131 cddisk
 
# Создаём пользователя cddisk и добавляем в группу
useradd -u 119 -g 131 cddisk

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

sudo nano /etc/exports

5.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 сервера с сервисом Поиска.

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

sudo exportfs -ra

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

chown cddisk:cddisk /mnt/nfs/cddisk
chown cddisk:cddisk /mnt/nfs/search
chown ds:ds /mnt/nfs/ds

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

6.1. Установите клиент nfs

sudo apt install nfs-common

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

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

systemctl stop ds-converter ds-docservice ds-metrics

6.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.

6.2.3. Скопируйте файлы

cd /var/lib/r7-office/documentserver/App_Data/cache
mkdir /tmp/backup_ds
cp -pr ./ /tmp/backup_ds

6.2.4. Примонтируйте и скопируйте файлы

cd /tmp/backup_ds
mount -a
cp -pr ./ /var/lib/r7-office/documentserver/App_Data/cache

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

systemctl start ds-converter ds-docservice ds-metrics

6.2.6. Проверьте работу редактирования

И что файлы создаются на нашем nfs сервере

Установка для высоконагруженных систем Корпоративный сервер 2024, архитектура middle на ОС Astra Linux 1.7.4 Орел

6.3. Для ВМ с ролью Р7-Диск

6.3.1. Остановите сервисы

supervisorctl stop all

6.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-Диск.

6.3.3. Скопируйте файлы

cd /var/r7-office
mkdir /tmp/backup_cddisk
cp -pr ./ /tmp/backup_cddisk

6.3.4. Примонитируйте и скопируйте файлы

cd /tmp/backup_cddisk
mount -a
cp -pr ./ /var/r7-office

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

supervisorctl start all

6.3.6. Проверьте работу портала и сохранение документов

6.3.6.1. Создайте файл и отредактируйте его

Установка для высоконагруженных систем Корпоративный сервер 2024, архитектура middle на ОС Astra Linux 1.7.4 Орел

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

Установка для высоконагруженных систем Корпоративный сервер 2024, архитектура middle на ОС Astra Linux 1.7.4 Орел

6.4. Для ВМ с Сервисом Поиска

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

supervisorctl stop all

6.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 — куда монтируем сетевой каталог на сервере с сервисом Поиска.

6.4.3. Скопируйте файлы

cd /var/r7-office/searchindex
mkdir /tmp/backup_search
cp -pr ./ /tmp/backup_search

6.3.4. Примонтируйте и скопируйте файлы

cd /tmp/backup_search
mount -a
cp -pr ./ /var/r7-office/searchindex

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

supervisorctl start all

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

6.3.6.1. Введите имя файла в строке поиска

Должен выдать его в результате

Установка для высоконагруженных систем Корпоративный сервер 2024, архитектура middle на ОС Astra Linux 1.7.4 Орел

7. Настройка потоковой репликации Master-Slave PostgreSQL

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

sudo apt update && sudo apt install postgresql -y

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

sudo nano /etc/postgresql/11/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 — порт, который сервис прослушивает.

7.3. На Master

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

su - postgres
createuser --replication -P repluser

Потребует пароль, запишите его куда-нибудь

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

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

/etc/postgresql/11/main/postgresql.conf

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

exit

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

sudo nano /etc/postgresql/11/main/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 сообщать мастеру о запросах, которые он выполняет.

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

sudo nano /etc/postgresql/11/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.

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

systemctl restart postgresql

7.4. На Slave

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

su - postgres -c "psql -c 'SHOW data_directory;'"

Вывод

Установка для высоконагруженных систем Корпоративный сервер 2024, архитектура middle на ОС Astra Linux 1.7.4 Орел

su - postgres -c "psql -c 'SHOW config_file;'"

Вывод

Установка для высоконагруженных систем Корпоративный сервер 2024, архитектура middle на ОС Astra Linux 1.7.4 Орел

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

systemctl stop postgresql

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

tar -czvf /tmp/data_pgsql.tar.gz /var/lib/postgresql/11/main

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

rm -rf /var/lib/postgresql/11/main/*

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

su - postgres -c "pg_basebackup --host=192.168.26.48 --username=repluser --pgdata=/var/lib/postgresql/11/main --wal-method=stream --write-recovery-conf"

Где

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

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

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

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

systemctl start postgresql

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

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

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

7.5.1.1. На Master
select * from pg_stat_replication;

Установка для высоконагруженных систем Корпоративный сервер 2024, архитектура middle на ОС Astra Linux 1.7.4 Орел

7.5.1.2. На Slave:
select * from pg_stat_wal_receiver;

Установка для высоконагруженных систем Корпоративный сервер 2024, архитектура middle на ОС Astra Linux 1.7.4 Орел

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

7.5.2.1. На Master зайдите в командную оболочку Postgres
su - postgres -c "psql"
7.5.2.2. Создайте новую базу данных:
CREATE DATABASE repltest ENCODING='UTF8';
7.5.2.3. На Slave посмотрите список баз

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

sudo -u postgres psql -c '\l'

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

Установка для высоконагруженных систем Корпоративный сервер 2024, архитектура middle на ОС Astra Linux 1.7.4 Орел

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