Ранее мы рассказывали о том, как осуществить односерверную установку Carbonio на Red Hat Enterprise Linux 8, однако такой вариант больше подходит для тестирования, нежели для полноценного продуктива. В новой статье мы расскажем о том, как осуществить мультисерверную установку, которая, в отличие от односерверного варианта, позволяет распределять нагрузку между различными машинами

Мы рассмотрим установку коммерческой версии Carbonio на трех серверах. На данный момент это минимально допустимая для тестирования и использования в продуктиве конфигурация. Минимальные системные требования к каждому из узлов инфраструктуры включают в себя 4 vCPU Intel/AMD, 8 Gb RAM и как минимум 100 Gb свободного места на диске. Среди поддерживаемых платформ виртуализации: VMware vSphere 6.x и 7.x, XenServer и KVM. Также поддерживается VirtualBox, но рекомендуется только для тестовых целей.
Разбивка по серверам будет следующей:
-
Сервер 1 (Инфраструктурный узел) — на нем предполагается разместить те сервисы, которые будут обеспечивать взаимодействие между различными компонентами системы. Это LDAP-сервер, Postgresql, сервер Carbonio Mesh. Все размещенные на данному узле сервисы не требуют публичного IP-адреса.
-
Сервер 2 (Публичный узел) — на нем предполагается разместить те сервисы, которые должны быть доступны из внешней сети. Соответственно, у этого сервера должен быть публичный IP-адрес. Здесь будут установлены Carbonio Proxy, MTA и Videoserver для Carbonio Chats.
-
Сервер 3 (Почтовый узел) — на нем будет осуществляться хранение электронной почты, а также предоставление различных пользовательских сервисов, таких как Carbonio Files и Carbonio Docs. Данный сервер также не нуждается в публичном IP-адресе.
Таким образом, наша инсталляция будет иметь единую точку входа на одной машине, в то время, как два остальных узла, на которых хранится основной массив данных, будет спрятан за обратной прокси и будет недоступен для атак со стороны злоумышленников.
Общие настройки
В первую очередь администратору требуется задать каждому серверу имя хоста и FQDN. В нашем случае узлы будут носить название ldap, proxy и mailstore. Соответственно, имена для них будут задаваться командами:
-
hostnamectl set-hostname ldap
-
hostnamectl set-hostname proxy
-
hostnamectl set-hostname mailstore
Также добавим информацию о каждом из них в /etc/hosts, параллельно задав для них FQDN.
Все команды в инструкции по умолчанию выполняются от имени пользователя root, если явно не указано другое.
Запись будет идентична для всех серверов и выглядеть будет следующим образом:
-
192.168.0.100 ldap.carbonio.ru ldap
-
192.168.0.101 proxy.carbonio.ru proxy
-
192.168.0.102 mailstore.carbonio.ru mailstore
Обязательно отключите IPv6 и проследите, чтобы в /etc/hosts не было ни одной записи IPv6.
В случае, если предполагается получать почту из внешнего интернета, следует также добавить MX-запись, которая будет вести на сервер с установленным MTA.
Также, учитывая то, что речь идет об RHEL8, для установки пакетов потребуется добавить репозитории BaseOS и CodeReady:
-
subscription-manager repos —enable=rhel-8-for-x86_64-appstream-rpms
-
subscription-manager repos —enable codeready-builder-for-rhel-8-x86_64-rpms
Список портов, которые должны быть открыты для подключения из внешних сетей на узле Proxy:
-
80 — порт для незашифрованного подключения к веб-клиенту
-
110 — порт для POP3
-
143 — порт для IMAP
-
443 — порт для зашифрованного подключения к веб-клиенту
-
993 — порт для IMAPS
-
995 — порт для POP3S
-
6071 — порт для зашифрованного подключения к консоли администратора
-
25 — порт для входящей почты
-
465 — порт для SMTP с шифрованием SSL
-
587 — порт для SMTP с шифрованием STARTTLS
-
Диапазон UDP-портов от 20000 до 40000 — порты для подключения к видеосерверу
Также на каждом из серверов потребуется добавить в список репозиториев официальный репозиторий Carbonio. Ссылку на него можно получить у официального представителя Zextras в России.
Установка сервера LDAP
-
После завершения предварительных шагов, запустите на сервере LDAP установку PostgreSQL. Делается это при помощи следующих команд:
-
dnf -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
-
dnf -qy module disable postgresql
-
dnf -y install postgresql12 postgresql12-server
-
После выполнения установки PostgreSQL, инициализируйте создание базы данных в нем:
-
dnf -qy module disable postgresql
-
dnf -y install postgresql12 postgresql12-server
-
Воспользуйтесь генератором паролей для того, чтобы создать сложный пароль, который впоследствии будет использоваться для доступа к базам данных PostgreSQL. В нашем случае это будет 3A3aZl7VYbXw.
-
Создайте пользователя и основную базу данных для обращений со стороны Carbonio, используя пароль, созданный в шаге 3:
-
su — postgres -c «psql —command="CREATE ROLE carbonio_adm WITH LOGIN SUPERUSER encrypted password ‘3A3aZl7VYbXw’;"»
-
su — postgres -c «psql —command="CREATE DATABASE carbonio_adm owner carbonio_adm;"»
-
Повысьте максимальное количество подключений к PostgreSQL с помощью следующих команд:
-
su — postgres -c «psql —command="ALTER SYSTEM SET listen_addresses TO ‘*’;"»
-
su — postgres -c «psql —command="ALTER SYSTEM SET max_connections = 500;"»
-
su — postgres -c «psql —command="ALTER SYSTEM SET shared_buffers = 5000;"»
-
Добавьте в настройки PostgreSQL следующую строку, заменив 0.0.0.0/0 на собственную доверенную подсеть:
echo «host all all 0.0.0.0/0 md5» >> /var/lib/pgsql/12/data/pg_hba.conf
-
Перезапустите PostgreSQL
systemctl restart postgresql-12
-
Установите остальные компоненты Carbonio
dnf install service-discover-server carbonio-directory-server carbonio-files-db carbonio-mailbox-db carbonio-docs-connector-db carbonio-prometheus
-
Запустите процесс настройки Carbonio
carbonio-bootstrap
В процессе задайте все необходимые настройки. В случае, если планируете включить межпроцессное шифрование, вам потребуется доустановить пакет libio-socket-ssl-perl
-
Настройте Carbonio Mesh
service-discover setup-wizard
В ходе настройки укажите IP-адрес сетевого интерфейса, к которому будет привязываться Carbonio Mesh, а также пароль Carbonio Mesh.
-
Настройте установленные компоненты
Все настройки выполняются автоматически после ввода соответствующей команды и ввода пароля Carbonio Mesh
pending-setups -a
-
Создайте дополнительные базы данных в PostgreSQL
-
PGPASSWORD=3A3aZl7VYbXw carbonio-mailbox-db-bootstrap carbonio_adm 127.0.0.1
-
PGPASSWORD=3A3aZl7VYbXw carbonio-files-db-bootstrap carbonio_adm 127.0.0.1
-
PGPASSWORD=3A3aZl7VYbXw carbonio-docs-connector-db-bootstrap carbonio_adm 127.0.0.1
-
Получите пароль от LDAP для продолжения установки на других серверах
su — zextras -c «zmlocalconfig -s zimbra_ldap_password»

Установка сервера Proxy
-
Добавьте репозиторий
dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
-
Установите необходимые пакеты:
dnf install service-discover-agent carbonio-mta carbonio-proxy carbonio-webui carbonio-files-ui carbonio-chats-ui carbonio-user-management carbonio-videoserver carbonio-videoserver-recorder
В ходе установки пакета carbonio-videoserver укажите публичный адрес вашего сервера для подключений извне.
-
Запустите процесс настройки Carbonio
carbonio-bootstrap
В ходе настройки, во всех местах, где это требуется, введите пароль, который был получен при выполнении пункта 13 во время установки узла LDAP. В качестве адреса LDAP укажите имя хоста (ldap.carbonio.ru в нашем случае). Указание IP-адреса в качестве сервера LDAP приведет к ошибке.
-
Настройте Carbonio Mesh
service-discover setup-wizard
В ходе настройки укажите IP-адрес сетевого интерфейса, к которому будет привязываться Carbonio Mesh, а также пароль Carbonio Mesh, который был задан при выполнении пункта 10 во время установки узла LDAP
-
Настройте установленные компоненты
Все настройки выполняются автоматически после ввода соответствующей команды и ввода пароля Carbonio Mesh
pending-setups -a
-
Настройте сервер memcached
Выполните приведенные ниже команды от имени пользователя zextras (su zextras)
-
carbonio prov ms $(zmhostname) zimbraMemcachedBindAddress $(hostname -i)
-
zmmemcachedctl restart
-
zmproxyctl restart
Сервер memcached работает на порту 11211 и не поддерживает аутентификацию. Поэтому для обеспечения безопасности данных в нем рекомендуется ограничить доступ к этому порту из внешнего интернета
-
Включите видеосервер
-
systemctl enable videoserver.service
-
systemctl start videoserver.service
-
Получите данные для подключения к видео серверу
grep -i -e nat_1_1 -e api_secret /etc/janus/janus.jcfg
В выводе будет содержаться доменное имя видеосервера и Api Secret, который будет использоваться в дальнейшем.
Установка сервера Mailstore
-
Установите необходимые пакеты
dnf install service-discover-agent carbonio-advanced carbonio-preview carbonio-files carbonio-docs-connector carbonio-docs-editor
-
Запустите процесс настройки Carbonio
carbonio-bootstrap
В ходе настройки, во всех местах, где это требуется, введите пароль, который был получен при выполнении пункта 13 во время установки узла LDAP. В качестве адреса LDAP укажите имя хоста (ldap.carbonio.ru в нашем случае). Указание IP-адреса d качестве сервера LDAP приведет к ошибке.
-
Настройте Carbonio Mesh
service-discover setup-wizard
В ходе настройки укажите IP-адрес сетевого интерфейса, к которому будет привязываться Carbonio Mesh, а также пароль Carbonio Mesh, который был задан при выполнении пункта 10 во время установки узла LDAP
-
Настройте установленные компоненты
Все настройки выполняются автоматически после ввода соответствующей команды и ввода пароля Carbonio Mesh
pending-setups -a
-
Настройте взаимодействие с сервером memcached
Откройте файл /etc/carbonio/preview/config.ini в любом текстовом редакторе и приведите следующие строки к виду, указанному ниже:
nginx_lookup_server_full_path_urls = https://192.168.0.102:7072
memcached_server_full_path_urls = 192.168.0.101:11211
В этих настройках устанавливается связь между сервером mailstore и proxy. Соответственно, в первой строке должен быть указан адрес почтового сервера с протоколом https, а во второй строке адрес прокси-сервера с указанием порта, на котором работает сервер memcached.
-
Установите связь с видеосервером
Введите команду от имени пользователя zextras (su zextras)
carbonio chats video-server add VIDEOSERVER_ADDR port 8188 servlet_port 8090 secret VIDEOSERVER_PWD
Замените VIDEOSERVER_ADDR и VIDEOSERVER_PWD на данные, полученные при выполнении шага 8 во время установки узла Proxy
-
Включите связанные с Carbonio Chats функции
От имени пользователя zextras (su zextras) введите следующие команды:
-
carbonio config set cos default teamChatEnabled true
-
carbonio config set global teamVideoServerRecordingEnabled true
-
carbonio config set global teamMeetingRecordingEnabled true
-
carbonio prov modifyCos default carbonioFeatureChatsEnabled TRUE
-
carbonio prov modifyCos default carbonioFeatureMeetingEnabled TRUE
-
carbonio prov modifyCos default carbonioFeatureTeamEnabled TRUE
-
Задайте пароль для учетной записи администратора
При установке Carbonio автоматически создается учетная запись zextras в создаваемом по умолчанию домене. Ей автоматически присваиваются права глобального администратора, но не задается пароль по умолчанию. Чтобы использовать эту учетную запись для входа в веб-клиент, введите команду от имени пользователя zextras (su zextras)
carbonio prov setPassword zextras@carbonio.ru mPFu96V2keGS
-
Активация лицензии
Для активации лицензии введите от имени пользователя zextras (su zextras) следующую команду
carbonio core activate-license TOKEN
Замените TOKEN на предоставленный вам при приобретении лицензии или по запросу на тестирование почтового сервера токен.
Вход в веб-клиент будет доступен по адресу https://proxy.carbonio.ru, вход в консоль администратора осуществляется по адресу https://proxy.carbonio.ru:6071
ссылка на оригинал статьи https://habr.com/ru/articles/762178/
Добавить комментарий