LoginSignup
27
34

More than 5 years have passed since last update.

Mattermost導入とGitlabの細かな設定

Last updated at Posted at 2016-12-09

はじめに

近年はどこもかしこもGithubブームです。
「でもお金が…」
「でもセキュリティが…」
そういう会社さんも少なくないと思います。
(僕もこの経験あります。)
そんな方におすすめはGitlab。
Gitlab自体の導入はこのアドベントカレンダーで他の方が書かれてるので、
僕はGitlabの付属品のMattermostのご紹介です。

Mattermostってなに

MattermostはSlackのクローンみたいなものです。
ほぼSlackと言っても過言ではないレベル。
Slackもセキュリティの面で反発されやすいです。
そんなツールもGitlabに内蔵されているのでぜひ使ってみましょう。

環境

  • CentOS 7.2.1511

  • Gitlab CE Omnibus 8.14.1

【下準備】Gitlabのリンクを変更する。

Gitlabのデフォルトのリンクは http://localhost に設定されています。
もし組織内でサーバーを立ててる場合は変更する必要があります。
例えばサーバーのホスト名が「hogelab.intra」だったとします。

/etc/gitlab/gitlab.rb
# external_url 'http://localhost'
external_url 'http://hogelab.intra'

このようになります。
このURLは後々使います。

補足
基本的にgitlab.rbを編集したあとは
gitlab-ctl reconfigure
を実行して設定を反映させて下さい。

Mattermostを有効化する

MattermostはGitlab-CEのパッケージに含まれています。
設定は以下の通り。

/etc/gitlab/gitlab.rb
# mattermost_external_url 'http://mattermost.example.com'
mattermost_external_url 'http://mattermost.example.com' 

# mattermost['enable'] = false
mattermost['enable'] = true

# mattermost['service_address'] = "127.0.0.1"
mattermost['service_address'] = "0.0.0.0"

ただ動かすだけならこれだけ。
mattermost_external_urlは適宜変更。
mattermost['enable']はもちろんtrue。

注意点はservice_address。他のところはlisten_addressとかになっていましたが、
これも実はlisten_addressと同意義らしくログファイルを見ると

/var/log/gitlab/mattermost/current
[INFO] Server is listening on 127.0.0.1:8065

こんな感じでservice_addressの設定値でlistenし始めます。
ここが何の気無しで設定した際にエラーになったので注意です。
(127.0.0.1をlistenしても意味ないような・・・)

Gitlabのアプリケーションキーを発行する

ここまで来たら一回Gitlabにアクセスします。
rootアカウントでログインしたら右上のProfile Settingを開いて下さい。
Applicationsのタブを開いて画像のように設定します。キャプチャ2.PNG
NameのMattermostとか識別し易い名前にしておいて下さい。
Redirect URIの欄は
[mattermost_external_url]/login/gitlab/complete
[mattermost_external_url]/signup/gitlab/complete

この2つを登録してください。
そうするとこんな感じでキーが発行されます。
キャプチャ3.PNG
そしたらまたサーバー側に戻ります。

/etc/gitlab/gitlab.rb
# mattermost['gitlab_id'] = "12345656"
mattermost['gitlab_id'] = [Application Id]
# mattermost['gitlab_secret'] = "123456789"
mattermost['gitlab_secret'] = [Secret]

# mattermost['gitlab_auth_endpoint'] = "http://gitlab.example.com/oauth/authorize"
mattermost['gitlab_auth_endpoint'] = "[GitlabのURL]/oauth/authorize"
# mattermost['gitlab_token_endpoint'] = "http://gitlab.example.com/oauth/token"
mattermost['gitlab_token_endpoint'] = "[GitlabのURL]/oauth/token"
# mattermost['gitlab_user_api_endpoint'] = "http://gitlab.example.com/api/v3/user"
mattermost['gitlab_user_api_endpoint'] = "[GitlabのURL]/api/v3/user"

このように設定します。
gitlab_idはApplication Id、gitlab_secretはSecretを設定します。
ついでに

  • gitlab_auth_endpoint
  • gitlab_token_endpoint
  • gitlab_user_api_endpoint

この3つをコメントアウトを解除、Gitlabのexternal_urlと組み合わせる感じで設定します。

Mattermostにログインする

そうしたらmattermostにアクセスします。
キャプチャ4.PNG
次に
キャプチャ5.PNG
MattermostがGitlabへのアクセスするのを許可してやります。次へ。
キャプチャ.PNG
適当にチーム名決めます。
キャプチャ1.PNG
次はチームのURL決めます。わかりやすい方がいいです。
ここまで来たら晴れてMattermostが使えるようになります。
この方だとSSOでログイン出来るように設定されているので、
GitlabアカウントでMattermostもログインできちゃいます。
便利。

【Gitlab】ユーザーを管理者のみ作れるようにする

ユーザー管理は重要です。勝手に作らせたくない場合もあります。
管理者でログインして
Admin Areas→Settings→Sign-up Restrictions→Sign-up enabled
のチェックボックスを外しましょう。
ログイン画面のユーザー登録がなくなります。
管理者が管理画面からしかユーザーを作成できません。

【Mattermost】Mattermostも勝手にユーザーを作らせない

/etc/gitlab/gitlab.rb
# mattermost['email_enable_sign_up_with_email'] = true
mattermost['email_enable_sign_up_with_email'] = false
# mattermost['email_enable_sign_in_with_email'] = true
mattermost['email_enable_sign_in_with_email'] = false
# mattermost['email_enable_sign_in_with_username'] = false
mattermost['email_enable_sign_in_with_username'] = false

Mattermostは設定ファイルを書き換えないといけないようです。
ここまでやるとGitlabのユーザーを管理者が作ってそのアカウントでMattermostにSSOでログインする形になります。

【おまけ】Gitlabのアップデート

Gitlabはアップデートが多いプロダクトです。
ちょっとした注意点としてGitlabのアップデートを行う際にGitlabを停止してしまうと、
データベースのバックアップを取れなくて失敗します。
アップデートする際はGitlabを立ち上げっぱなしで行って下さい。

27
34
2

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
27
34