• Post category:Настройки
  • Запись изменена:10.07.2024

Cтатья выложена без всех стадий тестирования и проверок, поэтому может быть не актуальна и иметь ошибки

0. Схема

Вынос сервиса Search. Astra Linux 1.7. beta

0.1 Описание

Сервис поиска отвечает за обработку индексации файлов, писем, контактов пользователей и поиск по ним. Вынос его требуется для снижения нагрузки на сервер, т.к. поиск и индексация потребляет много ресурсов.

Также возможно увеличить количество сервисов Search, что даёт нам отказоустойчивость в виде нескольких серверов одного сервиса, работающих параллельно.

1. Выполните установку Корпоративного портала 2024

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

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

Установить согласно инструкции https://support.r7-office.ru/category/corporate-server2024/install-r7server

1.1 Выполните архивацию необходимых файлов и директорий

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/supervisor /var/r7-office/searchindex

1.1.1 Перенесите удобным Вам способом на ВМ с ролью Поиск

Например, через scp

scp search.tar.gz ipВМпоиска:/root/

1.2 Узнайте uid и gid пользователя cddisk

id cddisk

Вывод

id cddisk
uid=120(cddisk) gid=132(cddisk) группы=132(cddisk)

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

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

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

vi /etc/supervisor/conf.d/cddisk.conf

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

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

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

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

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

...
    },
    {
      "id": "ISearchService",
      "host": "http://192.168.27.77:2664"
    }
  ],
  "ServiceRegistry": {
    "Host": "http://+:7777"
  }

Где,

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

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

...
    },
    {
      "id": "ISearchService",
      "host": "http://192.168.27.77:2664"
    },
    {
      "id": "ISearchService",
      "host": "http://192.168.27.78:2664"
    }
  ],
  "ServiceRegistry": {
    "Host": "http://+:7777"
  }

Где,

  • 192.168.27.77, 192.168.27.78 — ip ВМ, где находится сервис Поиска.

1.4.1 Перезапустите сервис

systemctl restart supervisor
supervisorctl restart all

2. На ВМ с ролью Search

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

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

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

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

sudo wget https://packages.microsoft.com/config/debian/10/prod.list -O /etc/apt/sources.list.d/microsoft-prod.list && sudo apt update

2.3 Установите dotnet

sudo wget https://packages.microsoft.com/debian/10/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

2.4 Установите остальные пакеты

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

2.5 Создание группы и пользователя cddisk

Из п.1.2 Вы узнали uid и gid пользователя.

Создайте его с помощью следующих команд

2.5.1 Создайте группу cddisk

groupadd -g 132 cddisk

Где,

  • 132 — id группы;
  • cddisk — имя группы.

2.5.2 Создайте пользователя cddisk

useradd -u 120 -g 132 cddisk

Где,

  • 120 — id пользователя;
  • 132 — id группы;
  • cddisk — имя пользователя.

2.6 Распакуйте архив search.tar.gz

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

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

rm /etc/supervisor/conf.d/{cddisk-api,cddisk-filestorage,cddisk-registry,cddisk-ssoapi,cddisk-processing}.conf

2.6.2 Отредактируйте конфигурационный файл cddisk.conf

vi /etc/supervisor/conf.d/cddisk.conf
2.6.2.1 Приведите к виду
[group:cddisk]
programs=searchapi

2.6.3 Отредактируйте конфигурационный файл

vi /opt/r7-office/SearchApi/appsettings.json
2.6.3.1 Приведите к виду
...
  "Bsa.Search.Api": {
    "Host": "http://+:2664"
  }
...

2.7 Перезапустите сервис

systemctl restart supervisor
supervisorctl restart cddisk:searchapi

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