Перейти к основному содержимому

Облачный сервер с Mattermost

Mattermost — это мессенджер с открытым исходным кодом для обмена мгновенными сообщениями. Можно использовать как альтернативу другим мессенджерам (например, Rocket.Chat) в качестве корпоративного внутреннего чата в компаниях. В Mattermost можно обмениваться файлами и автоматизировать рутинные действия с помощью сценариев.

Mattermost можно развернуть локально или в облаке — создать облачный сервер с готовыми приложением Mattermost.

Создать облачный сервер с Mattermost

Для работы Mattermost облачный сервер должен быть доступен из интернета. Для этого создайте приватную подсеть и подключите публичный IP-адрес — вы можете это сделать при создании сервера. Для настройки Mattermost при создании сервера укажите user data — пользовательские параметры конфигурации операционной системы. Вы можете задать один из двух набор параметров:

После создания сервера с Mattermost автоматически выпустится бесплатный TLS-сертификат от Let’s Encrypt® для домена, который вы укажете. Для выпуска сертификата нужно добавить A-запись для домена и указать в значении записи публичный IP-адрес сервера. Домен можно добавить в DNS-хостинг Servercore (actual).

  1. Создайте публичный IP-адрес.

  2. Добавьте A-запись для домена.

  3. Создайте облачный сервер с Mattermost.

1. Создать публичный IP-адрес

Создайте публичный IP-адрес, чтобы облачный сервер с Mattermost был доступен из интернета.

Используйте подраздел Создать публичный IP-адрес инструкции Публичные IP-адреса.

2. Добавить А-запись для домена⁠

Добавьте ресурсную запись, чтобы получить доступ к Mattermost по домену.

Укажите:

3. Создать облачный сервер с Mattermost

  1. В панели управления в верхнем меню нажмите Продукты и выберите Облачные серверы.

  2. Нажмите Создать сервер.

  3. Заполните блоки:

  4. Проверьте цену облачного сервера.

  5. Нажмите Создать.

Имя и расположение

  1. Введите имя сервера. Оно будет установлено как имя хоста в операционной системе.

  2. Выберите регион и сегмент пула, в котором будет создан сервер. От сегмента пула зависит список доступных конфигураций сервера и стоимость ресурсов. После создания сервера изменить сегмент пула нельзя.

Источник

  1. Откройте вкладку Приложения.

  2. Выберите Cloud Mattermost.

  3. Опционально: если вам нужна другая актуальная или архивная версия приложения, в поле Версия выберите нужную версию.

Конфигурация

Выберите конфигурацию от 2 vCPU, RAM от 4 ГБ и размером загрузочного диска от 20 ГБ. Для сервера доступны два типа конфигураций:

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

  1. Нажмите Фиксированная.

  2. Откройте вкладку с нужной линейкой.

  3. Выберите конфигурацию.

  4. Если в выбранной конфигурации доступны и локальные, и сетевые диски, выберите диск, который будет использоваться в качестве загрузочного:

    • локальный диск — отметьте чекбокс Локальный SSD NVMe диск. Сервер с локальным диском можно создать только из образов и приложений;
    • сетевой диск — не отмечайте чекбокс.

    Объем оперативной памяти, который выделяется серверу, может быть меньше указанного в конфигурации — ядро операционной системы резервирует часть оперативной памяти в зависимости от версии ядра и дистрибутива. Выделенный объем на сервере можно проверить с помощью команды sudo dmesg | grep Memory.

Диски

  1. Если при настройке конфигурации вы не отметили чекбокс Локальный SSD NVMe диск, в качестве загрузочного диска сервера будет использоваться первый указанный сетевой диск. Чтобы настроить его:

    1.1. Выберите тип сетевого загрузочного диска.

    1.2. Укажите размер сетевого загрузочного диска в ГБ или ТБ. Учитывайте лимиты сетевых дисков на максимальный размер.

    1.3. Если вы выбрали тип диска Универсальный v2, укажите общее количество операций чтения и записи в IOPS. После создания диска вы можете изменить количество IOPS — уменьшить или увеличить. Количество изменений IOPS не ограничено.

  2. Опционально: чтобы добавить дополнительные сетевой диск сервера:

    2.1. Нажмите Добавить.

    2.2. Выберите тип сетевого диска.

    2.3. Укажите размер сетевого диска в ГБ или ТБ. Учитывайте лимиты сетевых дисков на максимальный размер.

    2.4. Если вы выбрали тип диска Универсальный v2, укажите общее количество операций чтения и записи в IOPS. После создания диска вы можете изменить количество IOPS — уменьшить или увеличить. Количество изменений IOPS не ограничено.

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

Сеть

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

Приватная — подсеть без доступа из интернета или с одним статическим публичным IP-адресом. Публичный IP-адрес подключается к серверу, который будет доступен из интернета.

  1. Нажмите Приватная подсеть.

  2. В поле Публичный IP-адрес для доступа из интернета выберите публичный IP-адрес, который вы создали раннее или создайте новый.

  3. Разверните блок с настройками приватной подсети.

  4. В поле Подсеть выберите существующую подсеть.

  5. В поле Приватный IP укажите приватный IP-адрес сервера. Публичный IP-адрес будет автоматически подключен к приватному адресу.

Безопасность

Выберите группы безопасности для фильтрации трафика на портах сервера. Без групп безопасности трафик будет запрещен. Если блок отсутствует, в сети сервера выключена фильтрация трафика (port security). С выключенной фильтрацией трафика весь трафик будет разрешен.

Доступ

  1. Разместите на сервере SSH-ключ для проекта для безопасного подключения:

    1.1. Если SSH-ключ для проекта не добавлен в облачную платформу, нажмите Добавить SSH-ключ, введите имя ключа, вставьте публичный ключ в формате OpenSSH и нажмите Добавить.

    1.2. Если SSH-ключ для проекта добавлен в облачную платформу, в поле SSH-ключ выберите существующий ключ. SSH-ключ доступен только в том пуле, в котором он размещен.

  2. Опционально: в поле Пароль для «root»:

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

    2.2. Сохраните пароль в безопасном месте и не передавайте в открытом виде.

Дополнительные настройки

  1. Если вы планируете создать несколько серверов и хотите повысить отказоустойчивость инфраструктуры, добавьте сервер в группу размещения:

    1.1. Чтобы создать новую группу, в поле Группа размещения нажмите Создать.

    1.2. Выберите Новая группа и введите имя группы.

    1.3. Выберите политику размещения на разных хостах:

    • желательно — soft-anti-affinity. Система постарается разместить серверы на разных хостах. Если при создании сервера не будет подходящего хоста, он будет создан на том же хосте;
    • обязательно — anti-affinity. Серверы в группе обязательно располагаются на разных хостах. Если при создании сервера не будет подходящего хоста, сервер не будет создан.

    1.4. Если группа создана, в поле Группа размещения выберите группу размещения.

  2. Чтобы добавить дополнительную информацию или фильтровать серверы в списке, добавьте теги сервера. Автоматически добавляются теги операционной системы и конфигурации. Чтобы добавить новый тег, в поле Теги введите тег.

  3. Чтобы добавить скрипт, который выполнится с помощью агента cloud-init при первом запуске операционной системы, в блоке Автоматизация в поле User data:

    • откройте вкладку Текст и вставьте скрипт текстом;
    • или откройте вкладку Файл и загрузите файл со скриптом.
#cloud-config

write_files:
- path: "/opt/gomplate/values/user-values.yaml"
permissions: "0644"
content: |
mattermostDomain: "<example.com>"
mattermostAcmeEmail: "<root@example.com>"
mattermostPostgresDB: "<database_name>"
mattermostPostgresUser: "<database_user_name>"
mattermostPostgresPassword: "<database_user_password>"
mattermostTimezone: "<time_zone>"
useExternalDB: false

Укажите:

  • <example.com> — домен для доступа к Mattermost, который вы добавили ранее;
  • <database_name> — имя базы данных PostgreSQL;
  • <database_user_name> — имя пользователя базы данных PostgreSQL;
  • <database_user_password> — пароль пользователя базы данных PostgreSQL;
  • <time_zone> — часовой пояс, например Europe/Moscow;
  • useExternalDB: false — параметр для использования базы данных на сервере.