Mattermostでコミュニケーション

この記事では、Linuxサーバに構築したGitLab Community Edition(CE)にバンドルされているMattermostというコミュニケーションツールを利用する方法について解説します。

GitLab CEの構築手順については、以下で詳しく解説しています。

Mattermostでコミュニケーション

GitLab Community Edition(CE)にバンドルされているMattermostは、GitLabにおけるチームコミュニケーションを補完する目的で提供されているオプションの一つであり、無料で利用可能な Team Edition(TE)というビジネス向けのチャットツールです。

Mattermostは、SlackやMicrosoft Teamsと同じカテゴリに分類されるコミュニケーションツールであり、クラウド型サービスとして利用することも可能です。

オープンソースとして提供されており、自己ホスティングが可能なため、特にプライバシーやセキュリティを重視する企業での採用が増えています。

また、比較的小規模なチームでの利用に適しており、DevOpsやソフトウェア開発チームなどの技術系の現場で活発に利用されています。今後、さらに注目が高まるツールの一つです。

Mattermostの設定方法

今回のMattermostの設定では、HTTPSでアクセスすることを前提として進めていきます。そのため、SSLサーバ証明書が手元に準備できている前提で解説を進めていきます。また、自己証明機関を利用している場合は、自己証明機関のCA証明書も必要になります。

Mattermostの構築は、GitLabの設定ファイルであるgitlab.rbファイルを編集して環境設定を行います。

# cd /etc/gitlab
# vi gitlab.rb

以下のパラメータについて、自身の環境に合わせて設定してください。「<= 追記」となっているパラメータは、デフォルトにないため追記してください。

mattermost_external_url 'https:/mattermost.reafnex.local'

mattermost['enable'] = true
mattermost['service_use_ssl'] = true <= 追記

mattermost_nginx['enable'] = true
mattermost_nginx['redirect_http_to_https'] = true <= 追記
mattermost_nginx['ssl_certificate'] = "/etc/gitlab/ssl/reafnex.local.crt" <= 追記
mattermost_nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/reafnex.local.key" <= 追記

設定を保存したら、GitLabを再構築します。

# gitlab-ctl reconfigure
# gitlab-ctl restart

Mattermostにアクセスする

ブラウザからgitlab.rbファイルの「mattermost_external_url」パラメータに設定したURLにアクセスすると、以下のような初期画面が表示されます。

まずは、Mattermostの管理者となるユーザを登録します。「メールアドレス」、「ユーザ名」と「パスワード」を入力して、「Create Account」をクリックします。

プロジェクト名や組織名などを入力して、「Continue」をクリックします。

GitLabを選択して、「Continue」をクリックします。

チームメンバーを招待するリンクが表示されているので、必要があればコピーしておきます。「Finish Setup」をクリックして、管理者の登録を完了します。

以下のような管理者のワークスペースが表示されれば、Mattermostの基本的な準備は完了となります。

メール通知設定

今回のMattermostのメール通知設定では、送信メールの通信をSTARTTLSで暗号化するとともに、CA証明書を使用してSMTPサーバの正当性も確認するように設定します。

これによって通信が暗号化されると同時に、悪意のある第三者によるなりすましを防止することができます。

自己証明書を利用する場合は、Mattermostが動作するサーバに対して、CA証明書をインポートする必要があります。

RHEL8の場合は、/etc/pki/ca-trust/source/anchorsにCA証明書を配置して、以下のコマンドを実行します。

# cd /etc/pki/ca-trust/source/anchors
# ls
reafnex_CA.crt

# update-ca-trust extract

CA証明書が正しくインポートされたか、以下のコマンドで確認します。(例:自己認証局がreafnex-SRV00-CAの場合)

# trust list | grep "reafnex-SRV00-CA"
    label: reafnex-SRV00-CA

CA証明書は一例であるため、ご自身のCA証明書の内容で読み替えてください。Windows Serverの認証局(AD CS)から取得したCA証明書はDER形式ですので、opensslコマンドでPEM形式に変換してからインポートしてください。

Mattermostのメール通知設定は、管理画面から設定することが可能です。Mattermostの管理コンソールにログインし、画面左上のメニューから「System Console」を選択します。

「SITE COMFIGURATION」→「Notifications」を選択し、赤枠の項目について自身の環境に合わせて設定し、「Save」ボタンで保存してください。

次に、「ENVIRONMENT」→「SMTP」を選択し、赤枠の項目について自身の環境に合わせて設定し、「Save」ボタンで保存してください。

設定の保存が完了したら、「Test Connection」ボタンをクリックして、メール送信テストを実行します。

以下のようなメッセージが表示されれば、メール送信は正常に処理できています。

もし、メール送信テストがうまくいかなかった場合は、SMTPサーバのログを確認したり、telnetやopensslコマンドを利用してSMTPサーバに接続できているか確認してください。

# telnet <SMTPサーバのホスト名またはIPアドレス> 587

# openssl s_client -starttls smtp -connect <SMTPサーバのホスト名またはIPアドレス>:587

まとめ

いかがでしたでしょうか。

今回は、GitLab Community Edition(CE)にバンドルされている Mattermostの構築方法、新しい管理者ユーザーの登録手順、およびメール通知の設定について紹介しました。

GitLab CE に付属するMattermost Team Edition(TE)は、GitLabのチームコミュニケーションを補完するために提供されているオプションツールです。

LDAP や GitLab との直接的な認証連携ができない、多要素認証(MFA)が利用できないなど、Enterprise Edition(EE)と比べて一部の機能に制限があります。しかし、チャットやファイル共有、通話機能などの基本的なコミュニケーション機能は TE でも十分に使えるため、活用しないのはもったいないでしょう。

GitLabとMattermostを活用して、チームのスムーズなコミュニケーションと生産性向上にぜひチャレンジしてみてください。

参考になれば幸いです。

システムのお悩みについてご相談ください

本サイトの掲載内容に関するお問い合わせは、こちらから承ります。
SOHOのシステム運用管理に関するお悩みごとについて、なんでもお気兼ねなくご相談ください。
現役システムエンジニアのスタッフが、ボランティアでご相談にご対応させていただきます。