матермост чат что это

Mattermost и Powershell — огромная сила, или малая автоматизация своими силами

Сразу оговорюсь — я работаю в компании, которая напрямую с IT не связана, поэтому бюджет именно на IT у нас небольшой. Соответственно многие программы и связанные с ними удобства нам недоступны, поэтому приходится делать как умеем. А когда в компании помимо IT отдела есть несколько сотен пользователей, которые с трудом отличают монитор от мышки — работа становится как отдельный квест.

Поэтому написанное мною будет скорее полезно админам в небольших компаниях.

Многие (или не многие) слышали о таком прекрасном инструменте как Mattermost.
Для тех, кто не слыхал — это такой Slack, но только self-hosted. Внутри компании общий чат вообще наиполезнейшая штука.

Ставится элементарно, при желании очень просто прикрутить бота (я, например, использую Hubot), на который можно завернуть всякого рода оповещения о задачах из редмайна или мониторинга, да и автоматизировать некоторые бизнес-процессы, которые можно завернуть в сценарий вопрос-ответ дорогого стоит.

Всем удобен этот чатик, но есть одно одно но. На самом деле не одно, но отсутствие нормального структурированного списка пользователей просто убивает. Можно, конечно, использовать Openfire+Miranda, но наличие у Mattermost клиента для телефонов с возможностью push-уведомления перевешивает все эти минусы. Так как количество пользователей не десяток, количество отделов тоже не два, то иногда возникает вопрос — а кто же сегодня работает на рецепции в удаленном филиале? Кто из них онлайн? Как красиво и доступно донести до обычного пользователя эту информацию в одном месте — тот еще вопрос. Рисовать развесистое дерево вариантов запросов и ответов для чатбота — развлечение еще то, поэтому представляю поделку на коленке специально для такого случая.

Cервис для Mattermost, написан удобства запуска различных powershell скриптов из slash/custom команд. На самом деле можно использовать для разных нужд, обращаясь к нему по url, но я его писал для того, чтобы в чатике рисовать кнопочки. Все любят кнопочки, даже котики и тётушки из бухгалтерии. Ну а писать на PowerShell обязан уметь любой виндовый админ, поэтому полезняшки!

Примерная работа выглядит так:

матермост чат что это. image loader. матермост чат что это фото. матермост чат что это-image loader. картинка матермост чат что это. картинка image loader. Сразу оговорюсь — я работаю в компании, которая напрямую с IT не связана, поэтому бюджет именно на IT у нас небольшой. Соответственно многие программы и связанные с ними удобства нам недоступны, поэтому приходится делать как умеем. А когда в компании помимо IT отдела есть несколько сотен пользователей, которые с трудом отличают монитор от мышки — работа становится как отдельный квест.

Сервис предназначен для работы на Windows системах, с Powershell v3+. Для его запуска требуются права запускать PowerShell скрипты и открывать сокет. В скрипте нет никакой аутентификации, поэтому прописывать в конфигах что-либо разрушительное и выставлять голой попой в интернет не советую. С другой стороны можно прописывать пути подлиннее, но это на любителя.

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

означают, что при обращении к урлу /script будет запущен скрипт Dummy-Script.ps1, находящийся в той же директории, что и ButtonCommander, с входящими переменными text,team_domain,user_name.

Сервис получает данные со скриптов и посылает их в channel, из которого пришел запрос. Если данные пришли в форме JSON, то конвертация в простое сообщение не происходит, а в Mattermost посылается исходный JSON — именно так делаются кнопочки.

Скрипт можно остановить или перечитать конфиг файл тоже путем обращения по специальному url. Но в прочем, описание и установка описаны прямо в репозитории, поэтому копипастить не буду. Скрипт прошёл обкатку, и выложен уже в рабочей версии. Работает без сбоев уже вполне долгое время.

Источник

Открываем Business Box: Mattermost и его возможности

матермост чат что это. thumb 309 810 455 0 0 landscape. матермост чат что это фото. матермост чат что это-thumb 309 810 455 0 0 landscape. картинка матермост чат что это. картинка thumb 309 810 455 0 0 landscape. Сразу оговорюсь — я работаю в компании, которая напрямую с IT не связана, поэтому бюджет именно на IT у нас небольшой. Соответственно многие программы и связанные с ними удобства нам недоступны, поэтому приходится делать как умеем. А когда в компании помимо IT отдела есть несколько сотен пользователей, которые с трудом отличают монитор от мышки — работа становится как отдельный квест.

При необходимости организовать работу удаленной команды всегда возникает потребность в мессенджерах. Не всегда удобно вести обмен сообщениями через привычные Telegram, Skype, Viber. Главная причина в необходимости разделить личную и рабочую переписку.

Что же делать в ситуации, когда нужна полноценная рабочая среда, в которую не будут иметь доступа посторонние? Лучший вариант — арендовать собственный VPS сервер и установить на него сервисы из пакета Business Box.

В наборе инструментов есть и опенсорсный корпоративный мессенджер Mattermost.

Разберем его возможности и преимущества.

Mattermost: опенсорсный мессенджер для вашей компании

матермост чат что это. Mattermost Channels. матермост чат что это фото. матермост чат что это-Mattermost Channels. картинка матермост чат что это. картинка Mattermost Channels. Сразу оговорюсь — я работаю в компании, которая напрямую с IT не связана, поэтому бюджет именно на IT у нас небольшой. Соответственно многие программы и связанные с ними удобства нам недоступны, поэтому приходится делать как умеем. А когда в компании помимо IT отдела есть несколько сотен пользователей, которые с трудом отличают монитор от мышки — работа становится как отдельный квест.

В наборе Business Box мы собрали несколько инструментов, без которых работа географически разделенной команды будет неэффективной. Один из них — бесплатный мессенджер Mattermost.

Этот инструмент будет отличной альтернативной Slack. Минимальный тариф Business Box обходится меньше, чем тариф Slack от 6,67 USD ежемесячно при оплате за год.

Mattermost позволяет создать общее пространство для коммуникации с быстрым поиском информации, доступом к документам, которые вам нужны. Мессенджер легко установить на сервер компании. А если использовать его в комплекте c другими инструментами Business Box, вы получите полноценную рабочую среду для реалиции любых сложных проектов.

Возможности Mattermost похожи на функционал Slack. Опенсорсный инструмент также позволяет:

экспортировать историю переписки;

настраивать персональные уведомления и упоминания пользователей;

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

Перейти со Slack на Mattermost очень просто. Вы можете перенести данные пользователей и полную историю переписки.

Использовать Mattermost можно с ноутбука и мобильного устройства. Также можно настроить push-уведомления о задачах, добавить бота с набором команд.

В мессенджере есть три вида каналов:

публичные (для всех желающих);

приватные (по приглашению);

личные (переписка тет-а-тет или группой до трех человек).

Функционал мессенджера

Коммуникация внутри команды. По функционалу Mattermost не уступает другим мессенджерам для командной работы.

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

Командные чаты. Вы можете добавлять неограниченное количество команд для всей компании и ее отделов. Также можно создавать командные чаты для отдельных проектов.

Комментирование. Любое сообщение можно закомментировать несколько раз. Это избавляет от необходимости объяснять, на какое именно сообщение вы отвечаете.

Выводы

Использование Mattermost в комплекте с другими инструментами из Business Box позволяет быстро обмениваться информацией, рабочими документами и продуктивно работать над проектами.

Использование Business Box избавляет от необходимости самостоятельно устанавливать и настраивать ПО. Внедряйте инструменты для дистанционной работы и повышайте продуктивность экономя при этом время и деньги.

Источник

Mattermost. Интеграция с внешними сервисами

Выбирая замену, используемой у нас системы обмена сообщениями, наткнулся на описание Mattermost, и решил попробовать. Одним из плюсов, описываемой системы, является простая интеграция со сторонними сервисами, так называемые «хуки» (outgoing и incoming hooks). Вот про настройку взаимодействия через хуки с внешними системами и будет данная статья (в нашем конкретном случае это zabbix и glpi).

Часть первая. Интеграция с GLPI

Так как мы, в своей работе, для учета оборудования, программного обеспечения, соединений, регистрации обращений в техподдержку используем GLPI, то логично было-бы организовать возможность для пользователей отправлять заявки в ТП из mattermost.

Для интеграции с внешними сервисами у GLPI есть http rest api. Документация по нему доступна в установленной системе по ссылке http://glpi/apirest.php/#glossary (где «glpi» адрес вашего сервера).

Слегка подумав над задачей, было решено алгоритм обмена реализовать на php, в пользу данного решения говорит то факт, что php уже установлен в системе и скрипт был органично вписан в glpi и доступен по адресу http://glpi/mm.php. Получился, своего рода, «прокси», который принимает запрос от mattermost, преобразует в нужный формат и отправляет GLPI. Все http-запросы передаются в JSON-формате.

Процедура работы состоит из 5-ти частей:

Перед тем как приступить к описанию кода срипта, проведём подготовительную работу как в mattermost так и в glpi.

матермост чат что это. image loader. матермост чат что это фото. матермост чат что это-image loader. картинка матермост чат что это. картинка image loader. Сразу оговорюсь — я работаю в компании, которая напрямую с IT не связана, поэтому бюджет именно на IT у нас небольшой. Соответственно многие программы и связанные с ними удобства нам недоступны, поэтому приходится делать как умеем. А когда в компании помимо IT отдела есть несколько сотен пользователей, которые с трудом отличают монитор от мышки — работа становится как отдельный квест.

На этом настройка АПИ в GLPI закончена.

Mattermost

В меню клиента Mattermost идём в «Inegration»->»Outgoing Webhooks» жмем «Add» и добавлем запись. На скрине я подчеркнул значимые поля. Тут следует сделать отступление: в mattermost «спусковым крючком» для запуска процедуры отправки запроса служит слово или фраза, которая, будучи указанной в начале сообщения, собственно, и запускает процесс. В нащем случае слово-тригер — «112» (тут прямая ассоциация с МЧС).

матермост чат что это. image loader. матермост чат что это фото. матермост чат что это-image loader. картинка матермост чат что это. картинка image loader. Сразу оговорюсь — я работаю в компании, которая напрямую с IT не связана, поэтому бюджет именно на IT у нас небольшой. Соответственно многие программы и связанные с ними удобства нам недоступны, поэтому приходится делать как умеем. А когда в компании помимо IT отдела есть несколько сотен пользователей, которые с трудом отличают монитор от мышки — работа становится как отдельный квест.

Имя пользователя по умолчанию и ссылку на аватарку можно добавить (а можно не добавлять), так как эти параметры будут переданы в запросе. Но для того, чтобы mattermost смог обрабатывать данные параметры, в настройках сервера надо поменять пару опций в файле /opt/mattermost/config/config.json

На этом настройка окончена. Настало время перейти к написанию кода. Скрипт скопирован в корневой каталог с файлами glpi, в моём случае это /var/www/html/glpi/mm.php

Результатом работы данного скрипта будет добавленный запрос в системе регистрации инцидентов в GLPI. В картинках это выглядит следующим образом:

Пишем сообщение в mattermost:

матермост чат что это. image loader. матермост чат что это фото. матермост чат что это-image loader. картинка матермост чат что это. картинка image loader. Сразу оговорюсь — я работаю в компании, которая напрямую с IT не связана, поэтому бюджет именно на IT у нас небольшой. Соответственно многие программы и связанные с ними удобства нам недоступны, поэтому приходится делать как умеем. А когда в компании помимо IT отдела есть несколько сотен пользователей, которые с трудом отличают монитор от мышки — работа становится как отдельный квест.

Идём в GLPI «Поддержка»->»Заявки» и в списке должно появится новое сообщение:

матермост чат что это. image loader. матермост чат что это фото. матермост чат что это-image loader. картинка матермост чат что это. картинка image loader. Сразу оговорюсь — я работаю в компании, которая напрямую с IT не связана, поэтому бюджет именно на IT у нас небольшой. Соответственно многие программы и связанные с ними удобства нам недоступны, поэтому приходится делать как умеем. А когда в компании помимо IT отдела есть несколько сотен пользователей, которые с трудом отличают монитор от мышки — работа становится как отдельный квест.

Ткнув на заголовок сообщения, откроется более подробная информация (красным обведены поля, значения которых передаются в скрипте)

матермост чат что это. image loader. матермост чат что это фото. матермост чат что это-image loader. картинка матермост чат что это. картинка image loader. Сразу оговорюсь — я работаю в компании, которая напрямую с IT не связана, поэтому бюджет именно на IT у нас небольшой. Соответственно многие программы и связанные с ними удобства нам недоступны, поэтому приходится делать как умеем. А когда в компании помимо IT отдела есть несколько сотен пользователей, которые с трудом отличают монитор от мышки — работа становится как отдельный квест.

На этом настройку отправки сообщений в GLPI из Mattermost, можно считать завершенной. Поработав немного над кодом, ничто не помешает реализовать изменение типа запроса (инцидент или заявка).

Источник

Как корпоративные команды разработчиков используют GitLab и Mattermost ChatOps для ускорения разработки

И снова здравствуйте! В феврале OTUS запускает новый курс «CI/CD на AWS, Azure и Gitlab». В преддверии старта курса подготовили перевод полезного материала.

матермост чат что это. image loader. матермост чат что это фото. матермост чат что это-image loader. картинка матермост чат что это. картинка image loader. Сразу оговорюсь — я работаю в компании, которая напрямую с IT не связана, поэтому бюджет именно на IT у нас небольшой. Соответственно многие программы и связанные с ними удобства нам недоступны, поэтому приходится делать как умеем. А когда в компании помимо IT отдела есть несколько сотен пользователей, которые с трудом отличают монитор от мышки — работа становится как отдельный квест.

Полноценный набор DevOps инструментов, мессенджер с открытым исходным кодом и ChatOps – как тут не влюбиться?

Никогда еще не было такого давления на команды разработчиков, как сейчас, с этим желанием создавать продукты быстрее и эффективнее. Рост популярности DevOps в значительной степени был результатом возложенных на него ожиданий ускорить цикл разработки, повысить гибкость и помочь командам быстрее справляться с проблемами. Несмотря на то, что доступность и комплексность инструментов DevOps значительно улучшилась в последние несколько лет, простой выбор самых современных и лучших инструментов не гарантирует гладкого, беспроблемного жизненного цикла разработки.

Почему GitLab

В экосистеме с экспоненциально растущим выбором и сложностью, GitLab предоставляет полноценную DevOps платформу с открытым исходным кодом, которая может ускорить цикл разработки, снизить затраты на нее и повысить эффективность разработчиков. От планирования и кода до развертывания и мониторинга (и в обратную сторону), GitLab объединяет множество разноплановых инструментов в один открытый набор.

Почему Mattermost ChatOps

В Mattermost мы большие поклонники GitLab, именно поэтому Mattermost поставляется вместе с GitLab Omnibus и мы работаем, чтобы быть уверенными, что Mattermost легко запускается вместе с GitLab.

Открытая платформа Mattermost ChatOps позволяет вам предоставлять релевантную информацию вашей команде и принимать решения непосредственно там, где ведется разговор. Когда возникает проблема, ChatOps workflow может предупредить соответствующих членов команды, которые вместе работают над решением проблемы непосредственно в Mattermost.

ChatOps предоставляет способ взаимодействия с задачами CI/CD посредством обмена сообщениями. Сегодня внутри организаций множество обсуждений, коллабораций и решений проблем вынесены в мессенджеры, и наличие возможности запуска задач CI/CD с выходными данными, возвращающимися обратно в канал, может существенно ускорить процесс работы команды.

Mattermost + GitLab

Полноценный набор DevOps инструментов, мессенджер с открытым исходным кодом и ChatOps – как тут не влюбиться? С помощью GitLab и Mattermost разработчики могут не только упростить свой DevOps-процесс, но и перенести его в тот же интерфейс чата, где члены команд обсуждают проблемы, кооперируются и принимают решения.

Вот несколько примеров того, как команды разработчиков совместно используют Mattermost и GitLab для улучшения эффективности работы с помощью ChatOps.

Itk использует GitLab и Mattermost для своевременной доставки кода и увличивает количество развертываний на продакшен за год в шесть раз
Itk располагающаяся в Монпелье, Франция, разрабатывает инструменты и приложения, которые помогают фермерам оптимизировать процессы сбора урожая, повышать его качество и эффективнее управлять рисками.

Они начали пользоваться GitLab примерно в 2014 году и в основном использовали устаревший инструмент чата для ежедневной работы, обмена сообщениями и видеозвонков. Однако, по мере роста компании, этот инструмент не масштабировался вместе с ними; не было постоянно хранящихся, легко находимых сообщений, и работа в команде становилась все труднее. Так они начали поиски альтернативы.

Вскоре после этого они обнаружили, что пакет GitLab Omnibus поставляется вместе с открытой платформой обмена сообщениями: Mattermost. Им сразу же полюбился простой функционал совместного использования кода, включая автоматическую подсветку синтаксиса и полную поддержку Markdown, а также легкость обмена знаниями, поиск по сообщениям и совместная работа всей команды над идеями для разработки новых решений, интегрированных с GitLab.

До перехода на Mattermost члены команды не могли с легкостью получать уведомления о процессе разработки. Но им хотелось иметь возможность визуально отслеживать проекты, мерджить request’ы и производить другие действия в GitLab.

Именно тогда Ромен Манески, разработчик из itk, начал писать плагин GitLab для Mattermost, который в дальнейшем позволил его команде подписываться на уведомления GitLab в Mattermost и получать уведомления о новых issue и запросах на ревью в одном месте.

матермост чат что это. image loader. матермост чат что это фото. матермост чат что это-image loader. картинка матермост чат что это. картинка image loader. Сразу оговорюсь — я работаю в компании, которая напрямую с IT не связана, поэтому бюджет именно на IT у нас небольшой. Соответственно многие программы и связанные с ними удобства нам недоступны, поэтому приходится делать как умеем. А когда в компании помимо IT отдела есть несколько сотен пользователей, которые с трудом отличают монитор от мышки — работа становится как отдельный квест.

Компания по разработке программного обеспечения повышает производительность за счет большей прозрачности и наглядности изменений в коде и конфигурации

Компания, разрабатывающая программное обеспечение и сервисы обработки данных, находящаяся в штате Мэриленд, также внедрила Mattermost, интегрированный с GitLab, чтобы повысить производительность и беспрепятственно сотрудничать. Они проводят аналитику, управляют данными и разрабатывают программное обеспечение для биомедицинских организаций по всему миру.

GitLab активно используется в их команде, и они считают его использование огромным преимуществом в своих рабочих процессах DevOps.

Они также объединили GitLab и Mattermost, собрав коммиты с GitLab в один канал в Mattermost через webhooks, что позволило руководству получать представление о том, что происходит в компании в определенный день «с высоты птичьего полета». Также были добавлены обновления для управления конфигурациями и контролем версий, с помощью которых можно было получать снапшот различных изменений, внесенных во внутреннюю инфраструктуру и системы в течение дня.

Команда также настроила отдельные каналы “Heartbeat” для отправки уведомлений о событиях приложения. Отправляя такие сообщения в определенные каналы Heartbeat, вы можете не отвлекать членов команд от рабочих разговоров в обычных каналах, позволяя членам команды отдельно переключаться на вопросы, опубликованные в каналах Heartbeat.

Одним из ключевых преимуществ этой интеграции является прозрачность изменений в различных версиях и управление конфигурацией в режиме реального времени. Как только изменения коммитятся и пушатся, в канал Heartbeat в режиме реального времени отправляется уведомление. На такой канал может подписаться любой желающий. Больше никаких переключений между приложениями, лишних вопросов членам команды или отслеживания коммитов – теперь все это сосредоточено в Mattermost, в то время как управление конфигурированием и разработка приложений ведется в GitLab.

GitLab и Mattermost ChatOps повышают наглядность и производительность для ускорения разработки

Mattermost поставляется в составе пакета GitLab Omnibus, обеспечивающего готовую поддержку GitLab SSO, предварительно упакованные интеграции GitLab и поддержку PostgreSQL, а также интеграцию с Prometheus, которая позволяет осуществлять мониторинг систем и управление мерами реагирования на инциденты. Наконец, Mattermost теперь можно развернуть с помощью GitLab Cloud Native.

У команд DevOps до этого момента еще никогда не было лучшего инструмента с теми преимуществами, что есть у ChatOps. Установите GitLab Omnibus с Mattermost и попробуйте сами!

На этом все. Традиционно приглашаем всех желающих на бесплатный вебинар, где изучим особенности взаимодействия Jenkins и Kubernetes, рассмотрим примеры использования такого подхода, проанализируем описание работы плагина и оператора.

Источник

Установка Mattermost в Ubuntu 20.04

Mattermost – это открытая платформа для совместной работы и обмена сообщениями, созданная с учетом требований безопасности и конфигурируемости, по функционалу близкая к Discord или Slack. Mattermost предлагает групповой, потоковый и индивидуальный обмен сообщениями, неограниченную историю поиска, совместное использование файлов, двухфакторную авторизацию и уведомления. Mattermost также поддерживает веб-хуки и интеграцию с ботами. Он доступен с любого современного устройства благодаря отзывчивому веб-интерфейсу и специальным мобильным приложениям.

матермост чат что это. mattermost. матермост чат что это фото. матермост чат что это-mattermost. картинка матермост чат что это. картинка mattermost. Сразу оговорюсь — я работаю в компании, которая напрямую с IT не связана, поэтому бюджет именно на IT у нас небольшой. Соответственно многие программы и связанные с ними удобства нам недоступны, поэтому приходится делать как умеем. А когда в компании помимо IT отдела есть несколько сотен пользователей, которые с трудом отличают монитор от мышки — работа становится как отдельный квест.

В этом мануале мы настроим Mattermost Team Edition на сервере Ubuntu 20.04. Сначала мы установим пакет и разместим его на своем домене, защищенном с помощью бесплатного TLS-сертификата Let’s Encrypt. Затем мы включим уведомления по электронной почте, настроим брендинг и создадим доску сообщений (в Mattermost они называются командами).

Требования

Примечание: Чтобы SMTP-сервер Postfix работал правильно, записи PTR вашего сервера должны соответствовать your_domain. Вы можете проверить имя хоста сервера, введя hostname в командную строку. Результат покажет имя, которое вы дали своему серверу при его создании.

1: Установка Mattermost

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

Читайте также:

Загрузка Mattermost

Все данные Mattermost будут храниться в папке по имени

/mattermost. Создайте такую папку:

Откройте официальный сайт Mattermost и скопируйте ссылку на последнюю версию. На момент написания мануала последней была 5.24.2. Загрузите ее с помощью wget:

Затем распакуйте архив:

Эта команда распакует все архивные файлы в каталоге, чьи имена начинаются с mattermost.

Вы получите папку с двоичными файлами Mattermost, имя которой будет совпадать с исходным файлом, который вы скачали. Скопируйте папку в /opt, чтобы вы могли получить к ней доступ в системе:

Затем создайте папку для Mattermost, в которой будут храниться пользовательские данные:

sudo mkdir /opt/mattermost/data

Примечание: Mattermost будет хранить файлы и изображения, которыми будете делиться вы и ваша команда, в этом каталоге, поэтому убедитесь, что у вас достаточно свободного места на диске, на котором он находится.

Затем создайте пользователя и группу для Mattermost:

Сделайте нового пользователя и его группу владельцами папки данных:

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

Теперь откройте группам право на изменение каталога /opt/mattermost:

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

Настройка базы данных MariaDB для Mattermost

Откройте командную строку MariaDB:

Создайте для базы данных пользователя mmuser, выполнив следующую команду (замените your_mmuser_password сложным паролем):

CREATE USER ‘mmuser’@’%’ IDENTIFIED BY ‘your_mmuser_password’;

Затем создайте базу данных для Mattermost:

CREATE DATABASE mattermost;

Чтобы пользователь mmuser мог получить доступ к базе данных mattermost, предоставьте ему права доступа:

GRANT ALL PRIVILEGES ON mattermost.* TO ‘mmuser’@’%’;

Затем перезагрузите таблицы привилегий, чтобы сразу применить изменения:

Когда вы закончите, закройте командную строку БД:

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

Откройте файл в редакторе:

sudo nano /opt/mattermost/config/config.json

Найдите строки, которые выглядят следующим образом:

Измените их, как показано ниже, заменив your_mmuser_password паролем, который вы установили для пользователя mmuser:

«DriverName»: «mysql»
«DataSource»: «mmuser:your_mmuser_password@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s»

Сохраните и закройте файл.

Теперь Mattermost может взаимодействовать с базой данных, в которой будут храниться пользователи, команды и сообщения. Пора создать сервис systemd.

Создание сервиса systemd для Mattermost

Чтобы Mattermost всегда работал в фоновом режиме, вам нужно запустить его как сервис systemd.

Хранить конфигурацию сервиса мы будем в файле mattermost.service, в каталоге /lib/systemd/system, где systemd хранит все свои сервисы. Создайте его с помощью текстового редактора:

sudo nano /lib/systemd/system/mattermost.service

Вставьте в файл следующие строки:

[Unit] Description=Mattermost
After=network.target
After=mysql.service
Requires=mysql.service
[Service] Type=notify
User=mattermost
Group=mattermost
ExecStart=/opt/mattermost/bin/mattermost
TimeoutStartSec=3600
Restart=always
RestartSec=10
WorkingDirectory=/opt/mattermost
LimitNOFILE=49152
[Install] WantedBy=mysql.service

Файл начинается с описания сервиса. Затем мы объявляем, что сервис mysql должен запускаться перед сервисом Mattermost, поскольку Mattermost для работы требуется база данных. После раздела [Unit] определяется тип сервиса. Здесь благодаря значению notify процесс будет сообщать system о загрузке. Мы указываем команду, которая будет выполняться, и устанавливаем политику перезапуска always. Также здесь определяется рабочий каталог процесса и указывается, от имени какого пользователя и группы он должен работать.

В разделе [Install] в качестве значения параметра WantedBy нужно указать сервис базы данных, чтобы обеспечить перезапуск Mattermost вместе с БД. Пропуск этого параметра может вызвать проблемы при автоматическом обновлении базы данных – Mattermost может перестать работать без перезапуска.

Сохраните и закройте файл, а затем перезагрузите все сервисы, выполнив следующую команду:

sudo systemctl daemon-reload

Убедитесь, что сервис mattermost загружен правильно:

sudo systemctl status mattermost

Вы увидите следующий результат:

Если systemd выдает ошибку, проверьте имя файла сервиса, его расположение и содержимое.

Затем включите сервис Mattermost:

sudo systemctl enable mattermost

Мы установили Mattermost, настроили его для поддержки базы данных MariaDB и создали для него сервис systemd. Идем дальше.

2: Размещение Mattermost на домене

Теперь мы настроим Nginx как обратный прокси-сервер для Mattermost.

Перед настройкой Nginx необходимо указать свой домен в главном конфигурационном файле Mattermost. Откройте его для редактирования:

sudo nano /opt/mattermost/config/config.json

Найдите строку, которая выглядит следующим образом:

Вставьте в кавычки имя вашего домена:

Сохраните и закройте файл.

Как вы уже знаете, конфигурационные файлы сайта Nginx хранит в /etc/nginx/sites-available; позже их нужно связать символической ссылкой с каталогом /etc/nginx/sites-enabled, чтобы активировать.

Хранить конфигурацию размещения Mattermost на вашем домене мы будем в файле mattermost.conf в каталоге /etc/nginx/sites-available. Создайте его в своем редакторе:

sudo nano /etc/nginx/sites-available/mattermost.conf

Добавьте такие строки:

upstream backend <
server localhost:8065;
keepalive 32;
>
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off;
server <
listen 80;
server_name mattermost.your_domain;
location

Замените mattermost.your-domain вашим настоящим доменом, а затем сохраните и закройте файл.

В этом файле сказано, что Nginx должен прослушивать HTTP-порт 80. Затем мы указываем server_name, который сообщает Nginx, для какого домена принимать запросы и применять эту конкретную конфигурацию. Следующие два дополнительных блока настраивают прокси-соединения, чтобы Mattermost работал правильно.

Чтобы включить эту конфигурацию сайта, нужно создать симлинк на нее в папке /etc/nginx/sites-enabled, запустив:

Чтобы проверить правильность конфигурации, выполните следующую команду:

Если в настройках нет ошибок или опечаток, вы увидите следующий результат:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Чтобы конфигурация вступила в силу, необходимо перезапустить Nginx:

sudo systemctl restart nginx

Затем запустите сервис Mattermost:

sudo systemctl start mattermost

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

Теперь ваша установка Mattermost доступна в сети по вашему домену. Давайте установим бесплатный TLS сертификат Let’s Encrypt.

3: Защита домена

В этом разделе вы защитите свой домен с помощью TLS сертификата Let’s Encrypt, который можно получить с помощью клиента Certbot.

Certbot должен быть уже установлен (если вы выполнили все предварительные требования к мануалу), нам осталось только установить его плагин Nginx:

sudo apt install python3-certbot-nginx

Также в рамках выполнения предварительных требований вы включили ufw (Uncomplicated Firewall) и настроили его для поддержки незашифрованного HTTP-трафика. Чтобы иметь доступ к защищенному сайту, вам необходимо настроить его на прием зашифрованного трафика, выполнив следующую команду:

sudo ufw allow https

Результат будет выглядеть так:

Rule added
Rule added (v6)

Теперь необходимо перезагрузить брандмауэр, чтобы конфигурация вступила в силу:

Команда выведет на экран:

Чтобы запросить сертификаты для вашего домена, выполните следующую команду:

Если вы запускаете Certbot впервые, вам будет предложено указать адрес электронной почты для срочных уведомлений и принять условия использования EFF. Certbot запросит сертификаты для вашего домена у Let’s Encrypt, а затем предложит перенаправить весь HTTP-трафик на HTTPS:

Рекомендуем выбрать второй вариант, чтобы сайт был доступен только по зашифрованным соединениям.

Вы получите такой вывод:

IMPORTANT NOTES:
— Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/mattermost.your_domain/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/mattermost.your_domain/privkey.pem
Your cert will expire on 2020-09-28. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the «certonly» option. To non-interactively renew *all* of
your certificates, run «certbot renew»
— Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
— If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let’s Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

Это означает, что Certbot успешно сгенерировал сертификаты TLS и применил их к конфигурации Nginx вашего домена.

Поскольку теперь к вашему домену можно получить доступ по HTTPS, вам необходимо исправить URL-адрес своего домена в конфигурации Mattermost. Откройте файл для редактирования:

sudo nano /opt/mattermost/config/config.json

Снова найдите строку, которая выглядит так:

Измените http на https:

Это все, что вам нужно отредактировать, сохраните и закройте файл.

Теперь вы можете перезагрузить домен Mattermost в браузере: после этого вы должны увидеть зеленый замочек слева от адреса сайта, что означает, что вы защитили ваши соединения.

Теперь, когда ваши сертификаты TLS успешно настроены и домен доступен по зашифрованным соединениям, мы можем приступать к настройке Mattermost.

4: Настройка Mattermost

В этом разделе мы создадим команду в Mattermost, настроим уведомления по электронной почте и изменим брендинг сервера.

Когда вы впервые открываете Mattermost, вам необходимо создать учетную запись с правами администратора. Если у вас уже есть учетная запись, вы можете войти в нее. После входа в систему вы увидите сообщение о том, что команды, к которым вы можете присоединиться, отсутствуют.

Чтобы изменить это, выберите Create a team. Вы увидите страницу, которая предложит назвать эту команду (например, bestteam).

Введите любое имя и нажмите Next. Затем Mattermost попросит вас указать веб-адрес для вашей команды на этом домене, он будет точкой доступа для вашей команды в Mattermost (например, https://mattermost.your-domain/bestteam)

Вы можете оставить URL без изменений. Когда вы закончите, нажмите Finish. Mattermost создаст вашу команду. После того, как вы пропустите справку, вы увидите основной интерфейс, в котором вы будете проводить большую часть времени при переписке.

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

Слева находится меню, обеспечивающее доступ к разделам конфигурации Mattermost. Сначала мы настроим уведомления по электронной почте, поэтому выберите параметр SMTP, который можно найти в разделе Environment.

Чтобы подключиться к серверу Postfix, который вы установили заранее, введите localhost в SMTP Server и 25 в SMTP Server Port. Нажмите синюю кнопку Save, а затем нажмите кнопку Test Connection, расположенную ниже. Вы получите сообщение в зеленом поле:

No errors were reported while sending an email. Please check your inbox to make sure.

Теперь вы можете проверить входящие сообщения электронной почты, которую указали ранее. Вы увидите сообщение от Mattermost о том, что почта настроена правильно. Если вы его не получили, проверьте папку со спамом. Если вы получили от Mattermost сообщение об ошибке, еще раз проверьте, какую почту вы ввели (возможно, вам придется вернуться к мануалу по установке SMTP-сервера исходящей почты Postfix)

Теперь, когда вы убедились, что электронные письма приходят, вам нужно включить уведомления по электронной почте, выбрав в меню Site Configuration → Notifications. Установите для параметра Enable Email Notifications значение true, а для Notification From Address – адрес электронной почты (например, mattermost@your_domain).

Введите no-reply в Notification Display Name, это имя отправителя, которое будет отображаться в почтовом клиенте (оно не обязательно должно существовать и не будет отслеживаться). Вы можете дополнительно включить Enable Email Batching, чтобы сжимать несколько непрочитанных сообщений в одно электронное письмо и уменьшить общее количество писем, которые вы отправляете членам своей команды. Когда вы закончите менять настройки, нажмите Save.

Теперь вы можете при желании изменить брендинг сервера, выбрав Site Configuration → Customization. Здесь вы можете установить имя и описание сайта (Site Name и Site Description), а также загрузить лого бренда и текст.

Вы можете выйти из System Console, кликнув на имя пользователя в верхнем левом углу и выбрав первую опцию в раскрывающемся меню.

Вы создали свою команду в Mattermost и настроили уведомления по электронной почте, поэтому вы будете в курсе всех новых обсуждений в вашей команде.

Заключение

Теперь у вас есть собственная масштабируемая платформа для обмена сообщениями, которую вы и ваша команда можете использовать для совместной работы на всех устройствах. Благодаря Mattermost вы сможете общаться, обмениваться файлами и легко выполнять поиск по сообщениям и каналам.

Mattermost не поддерживает видео- и аудиовстреч. Чтобы настроить видеоконференцсвязь, ознакомьтесь с мануалом по установке Jitsi Meet (это приложение с открытым исходным кодом, которое предоставляет зашифрованные конференц-залы для нескольких человек).

Если вы хотите узнать больше о Mattermost, читайте официальную документацию.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *