GitLab mattermost

社内プライベートMattermostを立ち上げてChatOpsする

投稿日:2019年8月28日

社内開発チーム内のコミュニケーション、上手く行っていますか?
メンバーが世界各地に散らばってないなくても、近くの席に座っていても、心は意外と離れているかも知れません。

以下でプライベートなGitLab12をCentOS7にインストールした続きです。

コミュニケーションやナレッジシェアを円滑にする為にSlackを使うのが一般的な時代になりましたが、コンプライアンス的に社外リソースを使えない不運なプロジェクトも多いですよね。

そんな場合はSlackのクローン「Mattermost」を使うことでSlackを代替できます。

「Mattermost」はGitLabのOmnibus版に同梱されていて、Slackとほぼ同等の、ビジュアルな、自動投稿可能で、チャンネル分けされたチャット環境をオンプレミスに構築することが出来ます。

Mattermostを社内に導入することで以下のような効果が期待できます。

  1. チーム内コミュニケーションの円滑化
  2. 全員が手軽に同時閲覧できるのでメールよりも効率的な意思統一が図れる
  3. 他メンバーのGitLabへのpushを知る場になってくれる(マージしなきゃ)
  4. CI、CDなど自動化プロセス結果のコンソールになってくれる
  5. 運用管理ミドルからのアラート報告場になってくれる
  6. 専用チャンネルを作って知識を共有することでノウハウ蓄積出来る

他にも情報収集プログラムやSonarQubeのようなプロジェクト分析ミドルの結果を個別チャンネルに流すことで、現状把握をチーム全体で行えるようになります。

GitLab Omunibus版をインストールさえしてしまえば、Mattermostが使えるようになるまでものの5分です。

コミュニケーションが盛んになれば意思統一が図れてチームメイキングが楽になります。GitLabをインストールしたら以下の手順で簡単に有効化することが出来ます。

gitlab同梱のmattermostを使えるように設定する

/etc/gitlab/gitlab.rbを編集

GitLabの設定は/etc/gitlab/gitlab.rbで行います。mattermostを有効にする為の設定もこのファイルで設定します。

gitlab12.2.1に付属のMattermost5.13.2では以下3行を変更するだけです。ポートは18081にしています。任意で変更してください。

# vi /etc/gitlab/gitlab.rb

################################################################################
## GitLab Mattermost
##! Docs: https://docs.gitlab.com/omnibus/gitlab-mattermost
################################################################################

# 1. アクセスURLを変更
# mattermost_external_url 'http://mattermost.example.com'
mattermost_external_url 'http://192.168.0.4:18081'

# 2. mattermost有効化
# mattermost['enable'] = false
mattermost['enable'] = true

# 3. 起動IPをループバックからホストIPに変更
# mattermost['service_address'] = "127.0.0.1"
mattermost['service_address'] = "0.0.0.0"

設定をGitLabに反映

gitlab-ctl reconfigureして/etc/gitlab/gitlab.rbの内容をGitLabに反映します。

# gitlab-ctl reconfigure

18081ポート開放

18081ポートでMattermostを公開するようにしたのでTCPポートを開けます。

# firewall-cmd --add-port=18081/tcp --zone=public --permanent
success
# firewall-cmd --reload
success

動作確認

「http://GitLab、MattermostのIP:18081」にブラウザでアクセス。
GitLabのOAuth2機能でログインする為「GitLab Single Sign-On」をクリック。GitLabで作成したユーザ(ここでは前回作成したdeve1@localhost)でログインします。

チームを作成。GitLabで作ったチーム名でもなんでも構いません。

チーム名を登録後、

devel1ユーザでログインが出来ました。ハンバーガーメニュー(三みたいなやつ)から日本語化や各種設定が出来ます。

他開発メンバーを招待する

まだ自分しか居ないので他の開発メンバーを招待します。ハンバーガーメニューから「チーム招待リンクを入手」をクリック。

表示されたHTTPリンクを招待したいユーザにメールなりで送ります。ユーザには予めGitLabでユーザを作成しておきます。受信したユーザはリンクをクリック後、自分のGitLabアカウントでMattermostにログイン出来るようになります。

他ユーザたちとチャットでコミュニケーションが取れるようになりました。

人間同士の意思疎通や、CI結果を報告するボット投稿を共有する場所が、ものの数分で完成しました。

これが無料で構築出来るって・・・GitLabすごいですね。

チャットは運用次第でデスマーチプロジェクトすら成功に導いてくれるかも知れない

個人的な感想ですが昔からコミュニケーションが円滑な大規模プロジェクトではIRCを有効利用していたケースが多いような印象が有ります。

逆にそういったチャット環境が無い、旧態依然とした、自社他社入り乱れた顔も名前も知らない人が各開発部署に大勢居るようなウォーターフォールプロジェクトは意思疎通が上手く行かず、失敗するケースが多い印象が強いです。

急遽参画した大規模プロジェクトで分からないことが有った時、その件の有識者を探すのは手間が掛かります。詳しいと思われる人を紹介されても話をしてみたら期待した答えが返ってこなかったりすることもしばしばです。

そんな時、全ての開発会社メンバーが見ているチャット環境が有れば、目立ってないけど実は詳しい人が居て質問に答えてくれる可能性も出てきます。(IT業界は目立つのが嫌いなデキるキーマンが隠れていることが多い)

その後、文章としてそのやり取りが残っていれば他メンバーにも形式知として横展開され、質問が繰り返されることは無くなるはずです。

各チームや会社単位でチャンネルが閉じてしまわないようにオープンな運用をしていけば、Mattermostはデスマーチから抜け出せるキーになってくれるかも知れません。

-GitLab, mattermost
-, , ,

執筆者:

関連記事

Mattermostのチャンネル発言数をMetabaseでビジュアル化する

オンプレGitLabでMattermostを使えるようにした後の活用法として、「ナレッジチャンネル」的な運用をしてチームの知識を共有する営みをしている開発現場も多いのではないかと思います。 ミーティン …

Omnibus版のGitLab、Mattermostデータベースに外部ホストからJDBCで接続

Omnibusで入れたPostgreSQLは、 Unix Domainソケットで接続待機Peer認証で認証 していて外部からの接続は出来ないことが前回分かりました。One IT Thing  …

GitLab12.1からMySQLを捨ててPostgreSQLに一本化するらしい

オンプレSCMの旗手、GitLabから掲題のニュースが有りました。 2017年から公式発表があったことですが、GitLab 12.1からMySQLのサポートを止めるとのことです。 GitLab&nbs …

Nodeアプリが依存するnpmモジュールライセンスをlicense-checker & Jenkinsで自動チェック(1)

目次1 目的2 使用するnpmモジュール3 ライセンスを表示してみる3.1 サマリで出す3.2 CSVファイルで出す4 まとめ 目的 ionicやNode.jsアプリが依存するライブラリにライセンス違 …

GitLab内のリポジトリをmirrorして引っ越しする

目次1 はじめに2 環境3 引っ越し開始3.1 ①GitLabで引っ越し先リポジトリを作っておく3.2 ②旧リポジトリのミラーリポジトリを開発用PCに作る3.3 ③ミラーリポジトリに入って内容物を確認 …

 

shingo.nakanishi
 

東京在勤、1977年生まれ、IT職歴2n年、生涯技術者として楽しく生きることを目指しています。デスマに負けず健康第一。