概要
GitLab EE のOmnibus Installer でインストールされたMattermost を有効化し、同一サーバーでホストする。
手順
Mattermost の有効化
-
DNSの設定を変更し、GitLabと異なるURLで同じサーバーに到達できるようにする。 例:
gitlab.example.com
とmattermost.example.com
-
GitLabの管理者画面でMattermost用のアプリケーションキーを作成する
- GitLab
AdminArea
->Application
-> アプリケーションを作成するボタンを押す - Callback URLに
http://mattermost.example.com/signup/gitlab/complete
とhttp://mattermost.example.com/login/gitlab/complete
を2行で入力する。mattermostのURLに書き換えて入力する。httpsを使用している場合はhttpsにする。 - scopeは
api
にチェックを入れる。 - 保存して表示される
Application ID
とSecret
を控える。
- GitLab
-
GitLabの設定ファイルを変更する
mattermost_external_url 'http://mattermost.example.com'
mattermost['gitlab_enable'] = true
mattermost['gitlab_id'] = "<GitLabで作成したApplication ID>"
mattermost['gitlab_secret'] = "<GitLabで作成したSecret>"
mattermost['gitlab_scope'] = "api"
mattermost['gitlab_auth_endpoint'] = "http://gitlab.example.com/oauth/authorize"
mattermost['gitlab_token_endpoint'] = "http://gitlab.example.com/oauth/token"
mattermost['gitlab_user_api_endpoint'] = "http://gitlab.example.com/api/v4/user"
GitLabのURLは自分のものに書き換える。
- 同一サーバーでホストする場合、
/etc/hosts
を修正する
127.0.0.1 localhost gitlab.example.com mattermost.example.com
gitlabとmattermostにローカルループバックで接続できるようにしないと、この後のOAuthのトークン認証で失敗する問題があるため、この設定を行う。
参考: Mattermost - Token Request Failed when using Gitlab SSO (#2984) · Issues · GitLab.org / omnibus-gitlab · GitLab
-
GitLabを再構成する
sudo gitlab-ctl reconfigure
-
Mattermost にアクセスする 例
http://mattermost.example.com
-
GitLabアカウントでログインし、続いて表示される画面でGitLabの情報へのアクセスを許可する
httpsの有効化
- SSL証明書と証明書キーを
/etc/gitlab/ssl
に置く - GitLabの設定ファイルを更新する
mattermost_external_url 'https:/mattermost.gitlab.example'
mattermost_nginx['redirect_http_to_https'] = true
mattermost_nginx['ssl_certificate'] = "/etc/gitlab/ssl/mattermost-nginx.crt"
mattermost_nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/mattermost-nginx.key"
mattermost['service_use_ssl'] = true
デフォルトの設定ファイルに記載されていない行は追加する。
証明書のファイル名は置いたものに合わせて更新する。
pem形式の場合は、ssl_certificate
にfullchain.pem
を、ssl_certificate_key
にprivkey.pem
を指定する。
- GitLabを再構成する
sudo gitlab-ctl reconfigure
メール通知を有効化する
-
Mattermost にアクセスする 例
http://mattermost.example.com
-
メインメニュー ->
System Console
->Notification
->Email
-
各項目を設定して保存する。
-
設定例(SendGridの場合):
-
Enable Email Notification
:Enable
-
SMTP Server
:smtp.sendgrid.net
-
SMTP Server Port
:587
-
Enable SMTP Authentication
:Enable
-
SMTP User
:apikey
-
SMTP User Password
: SendGridで作成したAPIキー -
Connection Security
:STARTTLS
-
注意: Send Test ボタンは、パスワードが***の表示になっていると動作しないので、平文で入力された状態で確認する
-