LoginSignup
3
5

More than 3 years have passed since last update.

GitLab Mattermostの導入 - SSO設定、"webhook is blocked"対応

Last updated at Posted at 2019-09-12

はじめに

どうも!生産技術部のエンジニアです。私の所属する部署は仕事中にチャット?言語道断。という風潮が残されています。古き良き文化を捨て、新しい事に挑戦する事が「働き方改革」に繋がると信じています。ということで、今回は、GitLab Mattermostの導入を実施したいと思います。ここでは、GitLab Mattermostの有効化から、シングルサインオン(SSO)の設定、"webhook is blocked"エラーの対応方法を紹介します。

GitLabサーバを一から構築される方は、以下からご覧ください。
「proxy環境下でDocker Composeを用いてCentOS7上にGitLab Dockerを作成」

環境

  • CentOS : 7.6.1810
  • Docker-CE : 19.03.1
  • Docker Compose : 1.25.0
  • GitLab-CE Docker : 12.2.0-ce.0

前提条件

Docker、GitLabの導入が実施済みであること。

「proxy環境下でDocker Composeを用いてCentOS7上にGitLab Dockerを作成」
を参考に導入してください。

GitLab Mattermostの有効化

GitLab MattermostはGitLabの同封されていますが、標準で無効化されています。下記の設定を追加後、gitlab-ctl reconfigureを実施する事で有効になります。

gitlab.rb
mattermost_external_url 'http://gitlab.example.com:8001'

GitLabのDockerコンテナを利用している場合は、以下のコマンドを使用します。再設定が完了した後、http://gitlab.example.com:8001にアクセスし、GitLab Mattermostに接続できる事を確認して完了です。

$ docker exec -it gitlab_web_1 gitlab-ctl reconfigure

シングルサインオン(SSO)の設定

GitLabのアカウントを利用して、GitLab Mattermostにログインする場合は、SSOの設定が必要になります。まずは、GitLabのAdmin Area->Applicationから新規のアプリケーションを追加します。既にGitLab Mattermostがある場合は、追加不要です。下記の項目を設定して下さい。

  • Name
    • GitLab Mattermost(任意の名前)
  • Redilect URI
    • http://<登録したMattermostのURL>/login/gitlab/complete
    • http://<登録したMattermostのURL>/setup/gitlab/complete
  • Scope
    • api

sso_mattermost.png

登録したアプリケーションを選択し、Application IDSecretの値を確認します。

appid_mattermost.png

設定内容は、GitLabの公式ドキュメントに従います。gitlab_idgitlab_secretには、先ほど確認したApplication IDSecretの値を登録します。設定後は、gitlab reconfigureを実施し完了です。

gitlab.rb
mattermost['gitlab_enable'] = true
mattermost['gitlab_id'] = "12345656"
mattermost['gitlab_secret'] = "123456789"
mattermost['gitlab_scope'] = "api"
mattermost['gitlab_auth_endpoint'] = "http://<登録したGitLabのURL>/oauth/authorize"
mattermost['gitlab_token_endpoint'] = "http://<登録したGitLabのURL>/oauth/token"
mattermost['gitlab_user_api_endpoint'] = "http://<登録したGitLabのURL>/api/v4/user"

”webhook is blocked”の対応方法

Gitlabからpush通知等をGitLab Mattermostに送りたい場合は、webhookの設定が必要になります。設定内容は省略しますが、「GitLabとMattermostの連携」を参考に設定させて頂きました。ここでは、以下のエラーが出た場合の対応方法を紹介します。エラー内容は、ローカル宛の外向きのwebhookは禁止と言う事のようです。

webhook_block.png

GitLabのバージョンにより設定項目の所在が変わるようですが、現在のバージョン(12.2.0-ce.0)では、Admin Area->Settings->Networkの下記項目にチェックを入れる事で、ローカル宛のwebhookが可能になるようです。

  • Allow requests to the local network from web hook and services

webhook_setting.png

最後に

GitLab Mattermostの導入が完了しました。恒久的に利用するかどうかは、周りの反応次第です。受け入れてもらえるかわかりませんが、楽しみです。

会社で堂々とチャットがしたいwww(本音)

ご参考

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5