環境
CentOS 7.4
GitLab Community Edition 9.5.5
作業開始
公式ドキュメントはこちら
https://docs.gitlab.com/omnibus/gitlab-mattermost/
GitLabはインストール済み。
Mattermost用のURLを用意する
以下のようにgitLabと同ドメインでポートで分けたい。
gitLabのURL: http://gitlab.example.com/
MattermostのURL: http://gitlab.example.com:999/
ポートを開ける。
$ firewall-cmd --zone=public --add-port=999/tcp --permanent
$ firewall-cmd –-reload
確認
$ firewall-cmd --list-all
ports: 999/tcp が追加されてたのでOK
Mattermostを有効化
コメントを外してURL指定→reconfigure
mattermost_external_url 'http://gitlab.example.com:999/'
$ gitlab-ctl reconfigure
これだけで http://gitlab.example.com:999/ にアクセスするとサインイン画面が表示されました
サインインしようと思ったら…
エラー
Client authentication failed due to unknown client, no client authentication included, or unsupported authentication method.
このあたりを参考にして設定を見てみる
"mattermost": {
# 省略
"gitlab_secret": "xxxxx",
"gitlab_id": "xxxxxx",
# 省略
}
管理画面(http://gitlab.example.com/admin/applications) を見ると、
「GitLab Mattermost」という名前で自動的にapplicationが作成されていたのですが、
gitlab_secretとgitlab_idの値が違っている。
どうやら、そのまえにいろいろいじくって設定していたgitlab_idとgitlab_secretが
gitlab-secrets.json
にそのまま残っちゃってたみたいです。
/etc/gitlab/gitlab-secrets.json の方を直接編集し、再度reconfigure
$ vi /etc/gitlab/gitlab-secrets.json
$ gitlab-ctl reconfigure
無事にサインインできました
gitlab-secrets.json
を直接編集せずに、gitlab.rb
の mattermost['gitlab_id']
とmattermost['gitlab_secret']
を
設定してもうまくいきそうなかんじですが(未確認)、
gitlab.rb
をできるだけデフォ状態にしておきたかったので直接編集しました。