Содержание
Cхема
1. Роль PostgreSQL
Примечание
При включенной службе firewalld необходимо выполнить настройку для PostgreSQL.
# Добавляем службу: firewall-cmd --permanent --zone=public --add-service=postgresql # Перезапускаем службу firewalld: firewall-cmd --reload # Проверяем правила для зоны public: firewall-cmd --zone=public --list-all
1.1 Установите PostgreSQL
apt-get update && apt-get install -y postgresql14-server /etc/init.d/postgresql initdb
1.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 — порт, который сервис прослушивает
1.3 Измените pg_hba.conf
vim /var/lib/pgsql/data/pg_hba.conf
Добавьте строку
host cddisk cddisk 192.168.26.99/32 md5
Где
- cddisk — имя базы данных р7-диска
- cddisk — имя пользователя для р7-диска
- 192.168.26.99 — адрес, с которого будет подключаться р7-диск
1.4 Создайте пользователя и БД
su - postgres -s /bin/bash -c "psql -c \"CREATE DATABASE cddisk;\"" su - postgres -s /bin/bash -c "psql -c \"CREATE USER cddisk WITH password 'Rtyh&t6djsk123$';\"" su - postgres -s /bin/bash -c "psql -c \"GRANT ALL privileges ON DATABASE cddisk TO cddisk;\"" su - postgres -s /bin/bash -c "psql -c \"ALTER DATABASE cddisk OWNER TO cddisk;\""
Где,
- cddisk — имя БД для работы р7-диск;
- cddisk — пользователь с доступом к БД cddisk;
- Rtyh&t6djsk123$ — пароль от пользователя cddisk.
1.5 Перезапустите PostgreSQL
systemctl enable postgresql systemctl restart postgresql
2. Роль 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
2.1 Установка зависимостей
sudo apt-get update && sudo apt-get install -y xorg-x11-font-utils cabextract
2.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/*; }
2.3 Установка и настройка PostgreSQL
sudo apt-get install postgresql12 postgresql12-server -y
2.4 Инициализируйте базу данных PostgreSQL
sudo /etc/init.d/postgresql initdb
2.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
2.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;"
2.7 Установите вспомогательных сервисов
sudo apt-get install rabbitmq-server redis -y
2.8 Запустите сервисы
sudo systemctl enable rabbitmq redis sudo systemctl start rabbitmq redis
2.9 Установите дополнительные пакеты
apt-get install ca-certificates apt-https
2.10 Установка DS
2.10.1 Добавьте репозиторий для установки зависимостей
apt-repo add "rpm https://alt-repo.r7-office.ru r7server/x86_64 r7server" apt-get update
2.10.2 Установите пакета
apt-get install r7-office-documentserver-ee -y
2.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
2.11.1 Настройка сервера документов
Запустите скрипт documentserver-configure.sh для конфигурирования:
bash documentserver-configure.sh
Вам будет предложено указать параметры подключения к PostgreSQL, Redis и RabbitMQ. Используйте следующие данные:
Для PostgreSQL:
- Host: localhost
- Database: r7office
- User: r7office
- Password: r7office
Для Redis:
- Host: localhost
Для AMQP:
- Host: localhost
- User: guest
- Password: guest
2.11.2 JWT_SECRET
Выполните:
documentserver-jwt-status.sh
Запомните значение JWT_SECRET, т.к. пригодится на шаге установки Р7-Диска
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 Измените конфигурационный файл
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;
Где,
- имя_файла — домен или произвольное название.
2.12.5 Проверьте конфигурацию
nginx -t
2.12.6 Перезапустите сервис nginx
systemctl restart nginx
2.12.7 Запустите скрипт для обновления секрета storage
bash /usr/bin/documentserver-update-securelink.sh
2.13 Регистрация DS
Если вы приобрели Р7-Офис. Профессиональный. Сервер документов и получили файл license.lic. Вы можете поместить его в инсталляцию, для получения полной версии программы.
Если вы используете дистрибутив Linux на базе Debian, файл license.lic помещается в следующую папку
/var/www/r7-office/Data/license.lic
Имя файла лицензии должно быть строго license.lic.
После этого ваша версия Р7-Офис. Профессиональный. Сервер документов станет зарегистрированной и полнофункциональной.
3. Роль Р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
3.1 Скачайте архив дистрибутива
3.2 Разметите архив в /mnt
3.3 Распакуйте
unzip AltServer*.zip
3.4 Для HTTPS
Для корректной работы Корпоративного сервера обязательно требуется настройка HTTPS. Перед установкой, скопируйте crt и key файлы в папку /mnt/sslcert
.
Примечание
Имя файла должно содержать название домена и расширение.
Например, для домена r7.ru имена файлов должны быть r7.ru.crt и r7.ru.key.
Важно
Потребуется использовать ssl сертификат типа wildcard с соответствующей А записью (пример, *.yourdomain.ru) на используемом DNS сервере в сети сервера.
Для интеграции Р7-Корпоративный сервер 2024 с Р7-Команда сертификат должен быть с шифрованием RSA.
3.5 Добавьте права на исполнение скрипту
chmod +x online_installer.sh
3.6 Запустите установку (В зависимости от версии дистрибутива, шаги могут отличаться)
./online_installer.sh
3.7 В процессе установки:
3.7.1 Чистая установка
Если требуется выполнить чистую установку (удалит имеющуюся инсталляцию Р7-Диск и зависимости):
- Выберите Да
3.7.2 Установка СУБД на локальную ВМ
Install PostgreSQL:
- Выберите Нет
3.7.3 Установка Сервера Документов
Важно
Если версия устанавливаемого корпоративного сервера 2024 ниже 14000, то для корректной установки Роли Р7-Диск требуется document-server. Поэтому во время установки будем использовать локальный документ сервер, а потом его вынесем на отдельную ВМ.
Установка Сервер Документов:
- Выберите Да
3.7.3.1 JWT Key Document Server
Укажите Секрет установленного Document Server
- Его значение сохраняли в п. 2.11.2, значение jwt-secret
3.7.3.2 Пароль для базы данных DS
3.7.4 Установка CDDisk api & web
- Выберите Да
3.7.5 Выбрать PostgreSQL
- Выберите PostgreSQL
3.7.6 Создание БД
Выберите
- Нет
3.7.7 Хост СУБД
Укажите ip сервера с СУБД
3.7.7.1 Порт СУБД
Укажите port сервера с СУБД
- По умолчанию 5432, порт задавали в п.1.2
3.7.7.2 Пользователь с правами создания БД
Укажите cddisk
3.7.8 Пароль от пользователя cddisk
Укажите пароль пользователя cddisk, что был задан в п.1.4
3.7.9 coremachinkey от CS19
- Измените на актуальный, если есть Р7-Офис Корпоративный сервер 2019 и нажмите ОК,
- Если нет, нажмите Ок без редактирования
3.7.10 Настройка https
- Выберите Да, если выполнили пункт 3.4
- В ином случае выберете Нет
3.7.11 Укажите домен
- Необходимо указать домен, в котором у Вас созданы записи
Например, при домене r7.ru, необходимо создать запись cddisk.r7.ru.
В значении указываем именно r7.ru, не созданную А запись
3.7.11.1 Укажите префикс модуля Р7-Диск
Указать имя, которое будет открываться в браузере для веб Р7-Диска
Например, если Вы хотите, чтобы открылся Р7-Диск по адресу disk.r7.ru, то указать нужно именно disk, без указания домена.
Также, необходимо сделать соответствующую А запись в DNS.
3.7.11.2 Укажите префикс модуля Р7-Админ
Указать имя, которое будет открываться в браузере для веб админской панели.
Например, если Вы хотите, чтобы открылся Р7-Админ по адресу admin.r7.ru, то указать нужно именно admin, без указания домена.
Также, необходимо сделать соответствующую А запись в DNS.
3.7.11.3 Префикс Р7-Контакты
Указать имя, которое будет открываться в браузере для веб клиента контактов.
Например, если Вы хотите, чтобы открылся Р7-Контакты по адресу contacts.r7.ru, то указать нужно именно contacts, без указания домена.
Также, необходимо сделать соответствующую А запись в DNS.
3.7.11.4 Префикс Р7-Проекты
Указать имя, которое будет открываться в браузере для веб клиента проектов.
Например, если Вы хотите, чтобы открылся Р7-Проекты по адресу projects.r7.ru, то указать нужно именно projects, без указания домена.
Также, необходимо сделать соответствующую А запись в DNS.
3.7.11.5 Укажите префикс модуля Р7-Почта
Указать имя, которое будет открываться в браузере для веб клиента почты.
Например, если Вы хотите, чтобы открылся Р7-Почта по адресу cdmail.r7.ru, то указать нужно именно cdmail, без указания домена.
Также, необходимо сделать соответствующую А запись в DNS.
3.7.11.6 Укажите префикс модуля Р7-Календарь
Указать имя, которое будет открываться в браузере для веб календаря.
Например, если Вы хотите, чтобы открылся Р7-Календарь по адресу calendar.r7.ru, то указать нужно именно calendar, без указания домена.
Также, необходимо сделать соответствующую А запись в DNS.
3.7.11.7 Префикс Р7-Сервер Документов
Указать имя, которое будет открываться в браузере для веба сервера документом.
Например, если Вы хотите, чтобы открылся Р7-Сервер Документов по адресу ds.r7.ru, то указать нужно именно ds, без указания домена.
Также, необходимо сделать соответствующую А запись в DNS.
3.7.12 Установить Р7 Почтовый сервер
- Выбрать Нет
Установка почтового сервера на Alt linux 10.1 будет реализовано позже.
3.7.13 Перезагрузка сервера
- Ввести Да
3.8 Интеграция корпоративного сервера 2024 с вынесенным сервером документов
Актуальная инструкция на странице
3.8.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
3.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.r7o.ru адрес вынесенного сервера документов (если адрес вынесенного ДС одноименный — нет необходимости менять), для примера, указан в запросе — Value»=’https://ds.r7o.ru’
- указав вместо https://cddisk.r7o.ru ссылку на сервер документов
3.8.1.2 Секрет
На вынесенном сервере документов (установили в пункте 2) укажите секрет из запроса, по значению ключа «Key» = ‘files.docservice.secret’, в файле:/etc/r7-office/documentserver/local.json
Пример:
"secret": { "inbox": { "string": " " // в кавычках указать ключ из селекта п. 3.8.1, по значению ключа "Key" = 'files.docservice.secret' }, "outbox": { "string": " " // в кавычках указать ключ из селекта п. 3.8.1, по значению ключа "Key" = 'files.docservice.secret' }, "session": { "string": " " // в кавычках указать ключ из селекта п. 3.8.1, по значению ключа "Key" = 'files.docservice.secret' },
Перезапустите сервис DS (на вынесенном сервере документов) и проверьте статусы сервисов:
systemctl restart ds-* --all systemctl status ds-*
3.8.2 Перезапустите cddisk
supervisorctl restart all
3.8.3 Отключите сервер документов на сервере с ролью Р7-Диск
systemctl stop ds-* systemctl disable ds-metrics.service ds-docservice.service ds-converter.service
3.8.4 Проверьте работу сервера документов
Зайдите на портал Корпоративного сервера 2024 и создайте документ. Проверьте редактирование
4. Роль Поиск
Примечание: При включенной службе firewalld необходимо выполнить настройку для nfs.
# Добавляем службу: firewall-cmd --permanent --zone=public --add-port=2664/tcp # Перезапускаем службу firewalld: firewall-cmd --reload # Проверяем правила для зоны public: firewall-cmd --zone=public --list-all
4.1 Установите зависимости
4.1.1 Установите дополнительные пакеты
apt-get update && apt-get install ca-certificates apt-https
4.1.2 Добавьте репозиторий
apt-repo add "rpm https://alt-repo.r7-office.ru r7server/x86_64 r7server"
4.1.3 Установите пакеты необходимые для запуска сервиса Search
sudo apt-get update && apt-get install dotnet-aspnetcore-3.1 dotnet-sdk-3.1 supervisor -y
4.2 Перенесите конфигурационные файлы
4.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
4.2.2 Перенесите удобным вам способом архив на сервер с ролью search
Пример переноса через scp
scp search.tar.gz ipВмПоиска:/root/
4.2.3 Узнайте uid и gid пользователя cddisk на сервере с ролью Р7-Диск
id cddisk
Вывод
uid=479(cddisk) gid=459(cddisk) groups=459(cddisk)
4.2.4 Удалите конфигурационный файл на сервере с ролью Р7-Диск
rm /etc/supervisord.d/cddisk-searchapi.ini
4.2.5 Отредактируйте файл
vim /etc/supervisord.d/cddisk.ini
Приведите к виду
[group:cddisk] programs=api,filestorage,processing,registry,apisso
4.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.
4.2.7 Перезапустите сервис
systemctl restart supervisord supervisorctl restart all
4.3 На сервере с ролью Search
4.3.1 Создайте группу и пользователя cddisk
# Создаём группу и пользователя на сервере с поиском groupadd -g 459 cddisk # Создаём пользователя с uid 479 и добавляем его в группу с gid 459 useradd -u 479 -g 459 cddisk
где, uid=479 и gid=459 которые мы узнали в пункте 4.2.3
4.3.2 Распакуйте архив
tar xzvf search.tar.gz --selinux -C /
4.3.3 Удалите лишнее конфигурационные файлы /etc/supervisord.d
rm -Rf /etc/supervisord.d/{cddisk-api,cddisk-processing,cddisk-filestorage,cddisk-registry,cddisk-ssoapi}.ini
4.3.4 Измените файл /etc/supervisord.d/cddisk.ini
Приведите к виду:
[group:cddisk] programs=searchapi
4.3.5 Перезапустите службу
systemctl restart supervisor.service supervisorctl status all
4.4 Проверьте работу поиска
4.4.1. Введите в модуле Диск, в строке поиска, символы из названия документа
Для выдачи результата понадобится время, т.к. сервис только начал работу.
4.4.2. Проверьте дополнительно трафик
На сервере Поиска включите tcpdump, чтобы убедится, идут ли запросы во время заполнения строки поиска
tcpdump port 2664
Вывод
5. Роль NFS (опционально)
NFS сервер возможно заменить на дополнительный примонтированный диск
Примечание: При включенной службе firewalld необходимо выполнить настройку для nfs.
# Добавляем службу: firewall-cmd --permanent --zone=public --add-service=nfs # Перезапускаем службу firewalld: firewall-cmd --reload # Проверяем правила для зоны public: firewall-cmd --zone=public --list-all
5.1 Установите nfs и запустите
apt-get install nfs-server -y systemctl enable nfs systemctl start nfs
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@sabrr-search-alt10-1 var]# id cddisk uid=479(cddisk) gid=459(cddisk) groups=459(cddisk)
5.3.2 Проверьте на ВМ с Сервером документов uid и gid
id ds
Вывод:
[root@sabrr-ds-alt10-1 ~]# id ds uid=480(ds) gid=459(ds) groups=459(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 /var/www/r7-office /etc/r7-office /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 459 cddisk # Создаём пользователя cddisk и добавляем в группу useradd -u 479 -g 459 cddisk
5.4 Измените файл
vim /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 Обновите права на каталоги
chown cddisk:cddisk /mnt/nfs/cddisk chown cddisk:cddisk /mnt/nfs/search chown ds:ds /mnt/nfs/ds
5.4.3 Включите сетевые каталоги
exportfs -ra
6. Подключение сетевых каталогов
6.1 Установите клиент nfs на северах с ролями DS, Р7-Диск, Search
systemctl stop ds-converter ds-docservice ds-metrics
6.2 Для ВМ с ролью DS
6.2.1 Остановите сервис
systemctl stop ds-converter ds-docservice ds-metrics
6.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.
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 сервере
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 2
Где
- 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 Создайте файл и отредактируйте его
6.3.6.2 Проверьте его сохранение
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 2
Где
- 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 Введите имя файла в строке поиска
Должен выдать его в результате
7. Настройка потоковой репликации Master-Slave PostgreSQL
Примечание: При включенной службе firewalld необходимо выполнить настройку для PostgreSQL.
# Добавляем службу: firewall-cmd --permanent --zone=public --add-service=postgresql # Перезапускаем службу firewalld: firewall-cmd --reload # Проверяем правила для зоны public: firewall-cmd --zone=public --list-all
7.1 Установите PostgreSQL на Slave
apt-get update && apt-get install -y postgresql14-server /etc/init.d/postgresql initdb
7.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 — порт, который сервис прослушивает
7.2.1 Перезапустите PostgreSQL
systemctl enable postgresql systemctl restart postgresql
7.3 На Master
7.3.1 Создайте пользователя
su - postgres /bin/bash createuser --replication -P repluser
Запросит ввод пароля для новой роли, сохраните его
7.3.1.1 Проверьте расположение конфигурационного файла
psql -c 'SHOW config_file;'
В нашем случае это
/var/lib/pgsql/data/postgresql.conf
7.3.2 Выйдите из оболочки postgres
exit
7.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 сообщать мастеру о запросах, которые он выполняет.
7.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.
7.3.5 Перезапустите службу postgresql
systemctl restart postgresql
7.4 На Slave
7.4.1 Проверьте пути до конфигурационных файлов
sudo -u postgres psql -c 'SHOW data_directory;'
Вывод
sudo -u postgres psql -c 'SHOW config_file;'
Вывод
7.4.2 Остановите PostgreSQL
systemctl stop postgresql
7.4.3 Сделайте бэкап
tar -czvf /tmp/data_pgsql.tar.gz /var/lib/pgsql/data
7.4.4 Удалите содержимое
rm -rf /var/lib/pgsql/data/*
7.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 — введите его.
Начнется процесс клонирования данных.
7.4.6 Запустите PostgreSQL
systemctl start postgresql
7.5 Проверка репликации
7.5.1 Посмотрите статус
Статус работы репликации можно посмотреть следующими командами.
7.5.1.1 На Master
select * from pg_stat_replication;
7.5.1.2 На Slave:
select * from pg_stat_wal_receiver;
7.5.2 Создайте тестовую базу
7.5.2.1 На Master зайдите в командную оболочку Postgres
sudo -u postgres -s psql
7.5.2.2 Создайте новую базу данных:
CREATE DATABASE repltest ENCODING='UTF8';
7.5.2.3 На Slave посмотрите список баз
Выполните команду
sudo -u postgres -s psql -c '\l'
Вы должны увидеть среди баз ту, которую создали на первичном сервере:
Настройка завершена.