Содержание
Технические требования
- 6 Виртуальных машин (без slave и файлового сервера — 4);
- Для сервера NFS дополнительно 3 диска (для Р7-Диск, для Сервера документов, для Сервера поиска);
- ТХ Машин, для тестирования, возможно использовать:
- от 2 CPU;
- от 4Гб RAM (для ролей Поиска и Р7-диска рекомендуем использовать от 8Гб);
- от 20Гб свободного пространства на диске;
- Более конкретные данные рассчитываются по обращению в ТП;
- Отключение или перевод selinux в режим permissive для корректной работы сервисов.
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. Установка NFS сервера
Рассмотрим вариант простого nfs хранилища на RedOS 7.3, для примера.
Также файловый сервер возможно заменить монтированием дополнительных дисков на ВМ.
При включенной службе firewalld необходимо выполнить настройку для nfs.
# Добавляем службу: sudo firewall-cmd --permanent --zone=public --add-service=nfs # Перезапускаем службу firewalld: sudo firewall-cmd --reload # Проверяем правила для зоны public: sudo firewall-cmd --zone=public --list-all
2.1. Установите пакеты:
sudo dnf install nfs-utils nfs4-acl-tools -y
2.2. Запустите сервис
sudo systemctl enable nfs-server --now
2.3. Создайте директории
В данные директории рекомендуется примонтировать отдельные диски для каждого сервиса, удобным Вам способом
# для сервера документов mkdir -p /mnt/ds/cache mkdir /mnt/ds/license # для сервиса поиска mkdir /mnt/search # для Р7-Диск mkdir /mnt/disk
2.3.1. Как примонтировать диск в ОС
2.3.1.1. Добавьте к ВМ новый диск доступным способом
2.3.1.2. Найдите его обозначение
fdisk -l
Вывод:
В нашем примере 3 новых диска,
- /dev/sdb,
- /dev/sdc
- /dev/sdd
2.3.1.3. Создайте простым способом раздел
Далее команды предоставляются, как пример создания раздела и монитирования
fdisk /dev/sdb
Далее наберите один раз n и Enter до появления строки
Создан новый раздел 1 с типом ‘Linux’ и размером 5 GiB.
Далее введите w и нажмите Enter
Создан раздел /dev/sdb1, с которым и будет далее работать
2.3.1.4. Отформатируйте в etx4
mkfs.ext4 /dev/sdb1
Вывод:
Запомните UUID.
2.3.1.5. Добавьте в fstab и монтируем
Откройте на редактирование
nano /ets/fstab
Добавьте запись следующего вида
UUID="79af1b76-ceec-4846-81f3-1580dff3beb3" /mnt/ds ext4 defaults 0 0
Где,
- UUID=»79af1b76-ceec-4846-81f3-1580dff3beb3″ — id файловой системы диска /dev/sdb1;
- /mnt/ds — куда монтировать раздел;
- ext4 — тип файловой системы;
- defaults — опции монтирования;
- 0 — Индикатор необходимости делать резервную копию (как правило не используется и равно 0);
- 2 — Порядок проверки раздела (0 — не проверять, 1 — устанавливается для корня, 2 — для остальных разделов).
После монтирования в /mnt/ds, повторите команды создания каталогов в этой директории
mkdir /mnt/ds/cache mkdir /mnt/ds/license
2.3.1.6. Выполните команду монтирования
mount -a
Проверьте
df -hT
Также рекомендуем перезагрузить ВМ и повторно проверить состояние монтирования.
2.4. Добавьте файл лицензии
По данному пути добавьте файл лицензии с именно таким именем license.lic для Сервера документов
/mnt/data/license.lic
3. Роль 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
Рекомендация
Рекомендуем монтировать дополнительный диск на сервера СУБД в директорию /var/lib/pgsql (путь на момент написания статьи) до инсталляции, чтобы данная файловая система не была загружена процессами ОС. Можно воспользоваться пунктом 2.3.1 данной инструкции.
3.1. Установите PostgreSQL
sudo dnf install postgresql-server -y
3.2. Инициализируйте БД
/usr/bin/postgresql-setup --initdb --unit postgresql
3.3. Добавьте сервис в автозагрузку
sudo systemctl enable postgresql
3.4. Приведите файл pg_hba.conf к виду
Находится по пути
/var/lib/pgsql/data/pg_hba.conf
Приведите к виду
# "local" is for Unix domain socket connections only local all all peer # IPv4 local connections: host all all 127.0.0.1/32 md5 # Указать сервер Р7-Диска host cddisk cddisk 192.168.27.52/32 md5 # IPv6 local connections: host all all ::1/128 md5 # Allow replication connections from localhost, by a user with the # replication privilege. local replication all peer host replication all 127.0.0.1/32 md5 host replication all ::1/128 md5
Где, строки вида
- host cdidks cddisk 192.168.25.234/32 md5 — Это доступ к БД cddisk пользователю cddisk с ip 192.168.25.234 по методу md5
3.5. Отредактируйте файл postgresql.conf
Путь до файла
/var/lib/pgsql/data/postgresql.conf
Приведите параметры к следующему виду и раскомментируйте их
listen_addresses = 'localhost, 192.168.27.211' port = 5432
Где,
- localhost, 192.168.25.102 — интерфейсы, которые должен слушать PostgreSQL на ВМ, где он установлен. Можно также указать ‘*’, чтобы слушались все интерфейсы
3.6. Перезапустите сервис
sudo systemctl restart postgresql
Проверьте
sudo systemctl status postgresql
3.7. Проверьте, что СУБД слушает нужные интерфейсы
ss -tln | grep 5432
4. Роль PotgreSQL. Настройка Master
4.1. Создайте пользователя и БД
sudo -i -u postgres psql -c "CREATE USER cddisk WITH password 'cddisk';" sudo -i -u postgres psql -c "CREATE DATABASE cddisk OWNER cddisk;" sudo -i -u postgres psql -c "GRANT ALL privileges ON DATABASE cddisk TO cddisk;"
4.2. Создайте пользователя для репликации
su - postgres createuser --replication -P repluser
Запросит ввод пароля для новой роли, сохраните его
4.3. Отредактируйте конфиг postgresql.conf
/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 — количество планируемых слейвов;
- max_replication_slots — максимальное число слотов репликации;
- hot_standby — определяет, можно или нет подключаться к postgresql для выполнения запросов в процессе восстановления;
- hot_standby_feedback — определяет, будет или нет сервер slave сообщать мастеру о запросах, которые он выполняет.
4.4. Редактируйте файл pg_hba.conf
Находится по пути
/var/lib/pgsql/data/pg_hba.conf
Добавьте строки в конце
host replication repluser 127.0.0.1/32 md5 host replication repluser 192.168.27.211/32 md5 host replication repluser 192.168.27.137/32 md5
- Данной настройкой Вы разрешаете подключение к базе данных replication пользователю repluser с локального сервера (localhost и 192.168.27.211) и сервера 192.168.27.137 (slave).
4.5. Перезапустите службу postgresql
systemctl restart postgresql
5. Роль PostgreSQL. Настройка Slave (опционально)
5.1. Остановите PostgreSQL
sudo systemctl stop postgresql
5.2. Сделайте бэкап
sudo tar -czvf /tmp/psql.tar.gz /var/lib/pgsql/data
5.3. Удалите содержимое
sudo rm -rf /var/lib/pgsql/data/*
5.4. Реплицируем с Master на Slave
su - postgres -c "pg_basebackup --host=192.168.27.211 --username=repluser --pgdata=/var/lib/pgsql/data --wal-method=stream --write-recovery-conf"
Где,
- 192.168.27.211 — IP-адрес мастера;
- /var/lib/pgsql/data — путь до каталога с данными;
- repluser — пользователь, созданный для репликации, на Master.
После ввода команды система запросит пароль для созданной ранее учетной записи repluser — введите его.
Начнется процесс клонирования данных.
5.5. Запустите PostgreSQL
sudo systemctl start postgresql
5.6. Проверьте репликацию
5.6.1. Посмотрите статус
Статус работы репликации можете посмотреть следующими командами.
5.6.1.1. На Master
sudo -u postgres psql -x -c 'select * from pg_stat_replication;'
5.6.1.2. На Slave
sudo -u postgres psql -x -c 'select * from pg_stat_wal_receiver;'
5.6.2. Создайте тестовую базу на Master
5.6.2.1. На мастере зайдите в командную оболочку Postgres
su - postgres -c "psql"
5.6.2.2. Создайте новую базу данных
CREATE DATABASE repltest ENCODING='UTF8';
5.6.3. На Slave посмотрите список баз
5.6.3.1. Выполните команду
sudo -u postgres psql -c '\l'
5.6.3.2. Должны увидеть среди баз ту, которую создали на Master сервере
5.6.4. Настройка завершена
6. Роль Сервер документов (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
6.1. Установка
Актуальная инструкция на сайте
https://support.r7-office.ru/category/document_server/install-document_server/document_server_linux/
6.1.1. Установите необходимые сервисы
sudo dnf install nginx postgresql postgresql-server redis rabbitmq-server -y
6.1.2. Запустите и добавьте в автозагрузку
sudo systemctl enable redis rabbitmq-server nginx sudo systemctl start redis rabbitmq-server nginx
6.1.3. Инициализируйте базу данных
sudo service postgresql initdb
6.1.4. Откройте конфигурационный файл pg_hba.conf
Путь до файла
/var/lib/pgsql/data/pg_hba.conf
Приведите имеющиеся строки к виду
host all all 127.0.0.1/32 trust host all all ::1/128 trust
6.1.5. Запустите PostgreSQL
sudo systemctl enable --now postgresql
6.1.5. Создайте БД и пользователя
При необходимости, можете БД вынести на имеющийся Master, сделав соответствующие настройки и доступы
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;"
6.1.6. Установка Сервера документов
6.1.6.1. Откройте файл на редактирование
sudo nano /etc/yum.repos.d/r7server.repo
6.1.6.2. Добавьте следующий текст
[r7server] name=r7server baseurl=https://downloads.r7-office.ru/repository/r7-server-yum/ enabled=1 gpgcheck=1 gpgkey=https://download.r7-office.ru/repos/RPM-GPG-KEY-R7-OFFICE.public sslverify=1 username=server password=KwmuQmOzuFIw9wcJsL3zb
6.1.6.3. Обновите список репозиториев с подгружаемыми данными
sudo yum makecache
6.1.6.4. Для установки Сервера документов выполните следующую команду:
yum install r7-office-documentserver-ee
6.1.6.5. Запустите зависимые сервисы и добавьте их в автозагрузку:
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
6.1.6.6. Запустите скрипт настройки DS
sudo bash documentserver-configure.sh
Будут запрошены данные
6.1.6.6.1. Для PostgreSQL:
- Host: localhost
- Database: r7office
- User: r7office
- Password: r7office
Где,
- host — ip сервера с PostgreSQL или его dns имя (в данном примере localhost)
- Database — имя Базы Данных
- User — Имя пользователя
- Password — Пароль от пользователя
6.1.6.6.2. Для Redis:
- Host: localhost
Где,
- host — ip сервера с Redis или его dns имя (в данном примере localhost)
6.1.6.6.3. Для AMQP
- Host: localhost
- User: guest
- Password: guest
Где,
- host — ip сервера с RabbitMQ или его dns имя (в данном примере localhost)
- user — пользователь для подключения
- password — пароль от пользователя
6.1.6.7. Задайте параметры
Секрет, как пример, возможно сформировать в консоли следующей командой:
cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 32
Запомните значение JWT_SECRET, т.к. пригодится на шаге установки Р7-Диска
declare -x JWT_SECRET=VrTMopwWwGP1 declare -x JWT_HEADER=AuthorizationJwt declare -x SECURE_LINK_SECRET=bC8xyZpur6WjunjL01gL
где,
- JWT_SECRET — секрет, для формирования токена JWT;
- JWT_HEADER — определяет http заголовок;
- SECURE_LINK_SECRET — секрет, который используется для подписи URL.
6.1.6.8. Повторно запустите скрипт
Перейдите снова к п. 6.1.6.3. И перейдите к п. 6.2
6.2. Перевести DS на HTTPS возможно по следующей инструкции
https://support.r7-office.ru/document_server/install-document_server/document_server_linux/https_ds/
При использовании самоподписного сертификата или Let`s Encrypt воспользуйтесь инструкцией
https://support.r7-office.ru/document_server/settings-ds/dobavlenie-sertifikata-v-nodejs-dlja-servera-dokumentov-na-linux/
7. Роль Р7-Диск
https://support.r7-office.ru/category/r7disk/install-r7server/
1. Откройте файл на редактирование
sudo nano /etc/yum.repos.d/r7server.repo
2. Добавьте следующий текст
[r7server] name=r7server baseurl=https://downloads.r7-office.ru/repository/r7-server-yum/ enabled=1 gpgcheck=1 gpgkey=https://download.r7-office.ru/repos/RPM-GPG-KEY-R7-OFFICE.public sslverify=1 username=server password=KwmuQmOzuFIw9wcJsL3zb
3. Обновите список репозиториев с подгружаемыми данными
sudo yum makecache
7.1. Скачайте архив Р7-Диск для установки и положите его на ВМ
Рекомендуем, для корректной установки, архив разместить в директории, отличной от /root, например в /mnt или /tmp
7.2. Зайдите в директорию с архивом
cd /mnt
7.3. Распакуйте архив
unzip RedOS_*.zip
7.4. Выполните команду
sed -i "s/dnf install -y postgresql-client/dnf install -y postgresql/" CDDisk/install.sh
7.5. Установка
7.5.1. Для SSL инсталляции
Если требуется поддержка HTTPS, перед установкой скопируйте crt и key файлы в папку sslcert.
Имя файла должно содержать название домена и расширение.
Обязательно в .crt указывать всю цепочку сертификатов, домен, промежуточные и корневой.
Например, для домена r7.ru имена файлов должны быть r7.ru.crt и r7.ru.key.
7.5.2. Добавьте права на исполнение скрипту
chmod +x online_installer.sh
7.5.3. Запустите установку
sudo bash ./online_installer.sh
На запрос пароля для sudo введите его
7.5.3.1. В процессе установки:
7.5.3.1.1. Чистая установка
Если требуется выполнить чистую установку (удалит имеющуюся инсталляцию Р7-Диск и зависимости):
- Выберите Да
7.5.3.1.2. Установка СУБД
PostgreSQL будет на другой ВМ:
- Выберите Нет
7.5.3.1.3 Установка Сервера Документов
Важно
Если версия устанавливаемого корпоративного сервера 2024 ниже 14000, то для корректной установки Роли Р7-Диск требуется document-server. Поэтому во время установки будем использовать локальный документ сервер, а потом его вынесем на отдельную ВМ.
Установка Сервер Документов:
- Выберите Да
7.5.3.1.3.1 JWT Key Document Server
Укажите Секрет установленного Document Server
- Его значение сохраняли в п. 6.1.6.4, значение jwt-secret
7.5.3.1.3.2 Пароль для базы данных DS
7.5.3.1.4. Установка api и web диска
Основное приложения Р7-Диска и веба (статика) сайта.
Для его установки:
- Выберите Да
7.5.3.1.4.1. Тип СУБД Р7-Диск
- Выберите PostgreSQL
7.5.3.1.4.2. Создание БД
Создание БД не требуется
- Выберите Нет
7.5.3.1.4.3. Хост СУБД
СУБД установлена отдельно,
- укажите ip или имя хоста
7.5.3.1.4.4. Порт СУБД
По умолчанию 5432 используется. Если Вы настроили другой, укажите верный.
7.5.3.1.4.5. Пользователь с правами БД
7.5.3.1.4.6. Пароль пользователя
7.5.3.1.5. coremachinkey от CS
Измените на актуальный, если есть Р7-Офис Корпоративный сервер 2019 и нажмите ОК,
если нет, нажмите Ок без редактирования
7.5.3.1.6. Настройка https
Если выполнили пункт 5.1
- Выберите Да
В ином случае
- Выберете Нет
7.5.3.1.7. Укажите домен
Необходимо указать домен, в котором у Вас созданы записи
Например, при домене r7.ru, необходимо создать запись disk.r7.ru
. Пример записи в Selectel ниже
В значении укажите именно r7.ru, а не созданную А запись
7.5.3.1.8. Префикс Р7-Диск
Укажите имя, которое будет открываться в браузере для веб р7-Диска
Например, если Вы хотите, чтобы открылся Р7-Диск по адресу disk.r7.ru
, то указать нужно именно disk, без указания домена.
Также, необходимо сделать соответствующую А запись в DNS, пример в п.5.3.1.13.
7.5.3.1.9. Префикс Р7-Админ
Укажите имя, которое будет открываться в браузере для веб админ панели.
Например, если Вы хотите, чтобы открылся Р7-Админ по адресу admin.r7.ru
, то указать нужно именно admin, без указания домена.
Также, необходимо сделать соответствующую А запись в DNS. Пример ниже.
7.5.3.1.10. Префикс Р7-Почта
Укажите имя, которое будет открываться в браузере для веб календаря.
Например, если Вы хотите, чтобы открылся Р7-Календарь по адресу mail.r7.ru
, то указать нужно именно calendar, без указания домена.
Также, необходимо сделать соответствующую А запись в DNS. Пример ниже
7.5.3.1.11. Префикс Р7-Календарь
Укажите имя, которое будет открываться в браузере для веб календаря.
Например, если Вы хотите, чтобы открылся Р7-Календарь по адресу calendar.r7.ru
, то указать нужно именно calendar, без указания домена.
Также, необходимо сделать соответствующую А запись в DNS. Пример ниже
7.5.3.1.12. Перезагрузите систему
Для корректной работы Р7-Диска, требуется перезагрузка.
- Введите Да;
- Введите Нет, если требуется Вам выполнить дополнительные действия до перезагрузки.
Без перезагрузки Р7-Диск работать не будет
7.6 Интеграция корпоративного сервера 2024 с вынесенным сервером документов
Акутальная инструкция по ссылке
7.6.1 На сервере с БД (роль postgresql) (пункт 3) выведите информацию:
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
7.6.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 ссылку на сервер документов
7.6.1.2 Секрет
На вынесенном сервере документов (установили в пункте 6) укажите секрет из запроса, по значению ключа «Key» = ‘files.docservice.secret’, в файле:/etc/r7-office/documentserver/local.json
Пример:
"secret": { "inbox": { "string": " " // в кавычках указать ключ из селекта п. 7.6.1, по значению ключа "Key" = 'files.docservice.secret' }, "outbox": { "string": " " // в кавычках указать ключ из селекта п. 7.6.1, по значению ключа "Key" = 'files.docservice.secret' }, "session": { "string": " " // в кавычках указать ключ из селекта п. 7.6.1, по значению ключа "Key" = 'files.docservice.secret' },
Перезапустите сервис DS (на вынесенном сервере документов) и проверьте статусы сервисов:
systemctl restart ds-* --all systemctl status ds-*
7.6.2 Перезапустите cddisk
supervisorctl restart all
7.6.3 Отключите сервер документов на сервере с ролью Р7-Диск
systemctl stop ds-* systemctl disable ds-metrics.service ds-docservice.service ds-converter.service
7.6.4 Отредактируйте файл /etc/hosts на сервере с ролью Р7-Диск
В файле /etc/hosts
на сервере с ролью Р7-Диск удалите запись с ds.r7o.ru.
127.0.0.1 ds.r7o.ru
7.6.5 Проверьте работу сервера документов
Зайдите на портал Корпоративного сервера 2024 и создайте документ. Проверьте редактирование
8. Роль Поиска
При включенной службе 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
8.1. Установите дополнительные пакеты
dnf install -y aspnetcore-runtime-3.1 aspnetcore-targeting-pack-3.1 dotnet-apphost-pack-3.1 dotnet-host dotnet-hostfxr-3.1 dotnet-runtime-3.1 dotnet-sdk-3.1 dotnet-targeting-pack-3.1 dotnet-templates-3.1 netstandard-targeting-pack-2.1 supervisor
8.2. Заархивируйте конфигурационные файлы на ВМ с ролью Р7-Диск
tar czvf search.tar.gz --selinux /opt/r7-office/SearchApi /var/log/r7-office/CDDisk/SearchApi /etc/supervisord.d/ /var/r7-office/searchindex
8.2.1. Перенесите файл удобным способом
Например, через scp
scp search.tar.gz ipВмПоиска:/root/
8.2.2. Узнайте uid/gid пользователя cddisk
id cddisk
вывод
uid=986(cddisk) gid=983(cddisk) группы=983(cddisk)
8.3. Распакуйте архив на ВМ с ролью Поиска
8.3.1. Создайте пользователя cddisk
# Создаём группу cddisk groupadd -g 983 cddisk # Создаём пользователя cddisk и добавляем в группу useradd -u 986 -g 983 cddisk
8.3.2. Распакуйте архив
tar xzvf search.tar.gz --selinux -C /
8.4. Отредактируйте конфигурационный файл supervisor
8.4.1. Удалите лишние файлы
cd /etc/supervisord.d/ && rm cddisk-api.ini cddisk-filestorage.ini cddisk-registry.ini cddisk-ssoapi.ini cddisk-processing.ini -f
8.4.2. Измените файл
Файл по пути
/etc/supervisord.d/cddisk.ini
Приведите к виду
[group:cddisk] programs=searchapi
8.4.3. Перезапустите службу
systemctl restart supervisord
8.4.4. Проверьте службу поиска
supervisorctl status all
8.5. Отредактируйте конфигурационный файл для обращения сервисов к сервису поиска на ВМ с ролью Р7-Диск
8.5.1. Измените на «ip ВМ с поиском» в конфиге
/opt/r7-office/Service.Registry/appsettings.json
Также повторите действия с файлами ниже (для версий, ниже 2.0.15.843)
/opt/r7-office/Api/appsettings.json /opt/r7-office/Processing/appsettings.json
8.5.2. Удалите конфигурационный файл
rm /etc/supervisord.d/cddisk-searchapi.ini
Откройте конфигурационный файл на редактирование
/etc/supervisord.d/cddisk.ini
Привести к виду
[group:cddisk] programs=api,filestorage,processing,registry,apisso
8.5.3. Перезапустите supervisor
systemctl restart supervisord supervisorctl restart all
8.6. Проверьте работу поиска
8.6.1. Введите в модуле Диск, в строке поиска, символы из названия документа
Для выдачи результата понадобится время, т.к. сервис только начал работу.
8.6.2. Проверьте дополнительно трафик
На сервере Поиска включите tcpdump, чтобы убедится, идут ли запросы во время заполнения строки поиска
tcpdump port 2664
Вывод
9. Подключение сетевых каталогов NFS
9.1. На сервере с ролью DS (сервер документов)
9.1.1. Узнайте uid/gid пользователя ds
id ds
Вывод
uid=987(ds) gid=984(ds) группы=984(ds)
9.2. На сервере с ролью Р7-Диск и Поиска
9.2.1. Узнайте uid/gid пользователя cddisk
id cddisk
Вывод
uid=986(cddisk) gid=983(cddisk) группы=983(cddisk)
9.3. На сервере с ролью NFS
9.3.1. Создайте пользователя ds
# Создаём группу ds groupadd -g 984 ds # Создаём пользователя ds и добавляем в группу useradd -u 987 -g 984 ds
Где,
- 984 — gid из п.9.1.1;
- 987 — uid из п.9.1.1.
9.3.2. Создайте пользователя cddisk
# Создаём группу cddisk groupadd -g 983 cddisk # Создаём пользователя cddisk и добавляем в группу useradd -u 986 -g 983 cddisk
Где,
- 983 — gid из п.9.2.1;
- 986 — uid из п.9.2.1.
9.3.2. Обновите права на каталог
chown ds:ds /mnt/ds -R chown cddisk:cddisk /mnt/search -R chown cddisk:cddisk /mnt/disk -R
9.4. Отредактируйте файл
sudo nano /etc/exports
9.4.1. Добавьте строки
# Шара для сервера с Сервером документов /mnt/ds 192.168.27.1/32(rw,nohide,all_squash,anonuid=984,anongid=987,no_subtree_check) # Шара для сервера с Р7-Диск /mnt/disk 192.168.27.2/32(rw,nohide,all_squash,anonuid=983,anongid=986,no_subtree_check) # Шара для сервера сервисом Поиска /mnt/search 192.168.27.3/32(rw,nohide,all_squash,anonuid=983,anongid=986,no_subtree_check)
Где,
- 192.168.27.1 — ip сервера DS;
- 192.168.27.2 — ip сервера с Р7-Диск;
- 192.168.27.3 — ip сервера с сервисом Поиска.
9.4.2. Включите сетевые директории
sudo exportfs -ra
9.5. Подключение на сервере DS
9.5.1. Остановите сервис
systemctl stop ds-converter ds-docservice ds-metrics
9.5.2. Пропишите в fstab сетевой каталог
192.168.27.4:/mnt/ds/cache /var/lib/r7-office/documentserver/App_Data/cache nfs defaults 0 2 192.168.27.4:/mnt/ds/license /var/www/r7-office/Data nfs defaults 0 2
Где
- 192.168.27.4 — ip сервера nfs
- /mnt/ds, /mnt/ds/license — расшаренные каталоги на сервера nfs
- /var/lib/r7-office/documentserver/App_Data/cache — куда монтируем на сервере с DS
9.5.3. Установите утилиту для монтирования NFS
sudo dnf install nfs-utils
9.5.4. Монтируйте
mount -a
9.5.5. Запустите сервисы
systemctl start ds-converter ds-docservice ds-metrics
9.5.6. Проверьте работу редактирования
И что файлы создаются на Вашем nfs сервере
9.6. Подключение на сервере с Р7-Диск
9.6.1. Остановите сервисы
supervisorctl stop all
9.6.2. Установите утилиту для монтирования NFS
sudo dnf install nfs-utils
9.6.3. Пропишите в fstab
192.168.25.4:/mnt/disk /var/r7-office nfs defaults 0 2
9.6.4. Скопируйте файлы
cd /var/r7-office mkdir /tmp/backup_cddisk cp -pr ./ /tmp/backup_cddisk
9.6.5. Монтируйте и копируйте файлы
cd /tmp/backup_cddisk mount -a cp -pr ./ /var/r7-office
9.6.6. Запустите сервисы
supervisorctl start all
9.6.7. Проверьте работу редактирования
9.7. Подключение на сервере Поиска
9.7.1. Остановите сервисы
supervisorctl stop all
9.7.2. Установите утилиту для монтирования NFS
sudo dnf install nfs-utils
9.7.3. Пропишите в fstab
192.168.25.4:/mnt/search /var/r7-office nfs defaults 0 2
9.7.4. Скопируйте файлы
cd /var/r7-office mkdir /tmp/backup_search cp -pr ./ /tmp/backup_search
9.7.5. Монтируйте и копируйте файлы
cd /tmp/backup_search mount -a cp -pr ./ /var/r7-office
9.7.6. Запустите сервисы
supervisorctl start all
9.7.7. Проверьте работу поиска в модуле Диск