ラージビッグバナー(970x90)

Linux

GitLabとRedmineが別サーバの場合の連携設定Part1

更新日:

ビッグバナー(piglog)728px

GitLabとRedmineが別のサーバとして構成されているときにリポジトリを連携する手順を紹介します。

SVN(Subversion)とRedmineを連携するときは、Redmineの設定でSubversionのリポジトリURLを指定するだけで連携することができましたが、GitLabではローカルのパスしか指定ができません。そのため、サーバ側でいくつか設定する必要がありますが、Git自体をほぼ使ったことがなかったこともあり、、、少しはまったのでメモしておきます。

GitLabのリポジトリとRedmineを連携する

冒頭にも記載の通り、RedmineにGitのリポジトリを指定する場合はローカルのパスしか指定できません

そのため、RedmineサーバのローカルにGitLabのリポジトリをクローンし、クローンしたローカルのリポジトリとRedmineを連携することになります。その場合、GitLabにプッシュされたらRedmineにも反映する必要があり、GitLabのフックスクリプトを使用して反映します。簡単にいうと、GitLabにプッシュされたら、そのプッシュをトリガーにしてGitLab→Redmineにプッシュしてリポジトリを更新します。

それでは、以下の手順で進めていきます。
※以下タイトル冒頭の[]は、実行するサーバを示す(Redmineサーバで行うのか、GitLabサーバで行うのか)
※項番1~3は1回のみ実施すればOK
※項番4~9は連携するリポジトリごとに実施する必要あり

  1. [Redmine] 連携用プラグインインストール
  2. [Redmine] 連携用ユーザ作成・リポジトリクローン先ディレクトリ作成
  3. [GitLab/Redmine] SSH鍵認証ログイン設定(git push用)
  4. [Redmine] リポジトリのクローン
  5. [Redmine(WebUI)] リポジトリ設定
  6. [Gitlab] フックスクリプト作成
  7. [Gitlab(WebUI)] Webhook作成
  8. [Redmine(WebUI)]リポジトリが連携されているか確認

[Redmine]連携用プラグインインストール

この作業はRedmineサーバで実行します。

まず、redmineのプラグインディレクトリに移動して、ダウンロードします。その後、Redmineを再起動するために、restart.txt を作成してRedmineにWebブラウザでアクセスします。

Redmineを再起動することで、restart.txtは削除されるようですが、ぴぐろぐの環境では残っていました。残っていた場合はrmコマンドで削除すれば問題ないと思われます。再起動されていないのかと思い、RedmineのWeb画面で「管理」→「プラグイン」を確認すると、追加したプラグインが表示されていたので、ちゃんとインストールされているようです。

[Redmine]連携用ユーザ作成

この作業もredmineサーバで実行します。

GitLabとredmine の連携用のユーザを作成します。

[Redmine]リポジトリクローン先ディレクトリ作成

この作業もredmineサーバで実行します。

冒頭に記載の通り、RedmineでGitのリポジトリと連携するためには、Redmineのローカルのパスを指定する必要があります。そのために、redmineサーバのローカルにGitのリポジトリをクローンする必要があり、クローンするためのディレクトリを作成しておきます。

[GitLab]SSH鍵認証ログイン設定

Gitlabにプッシュされた際に、Gitlab→RedmineにプッシュするためにGitlabサーバのgitユーザがRedmineサーバのredgitユーザにSSH接続できるようにしておく必要がある。SSH接続は、パスフレーズなし鍵認証で設定する。

まず、GitLab サーバで鍵を作成します。GitLabサーバのgitユーザがプッシュするので、gitユーザで鍵を作成します。

続いて、GitLab→RedmineにSSH接続するための設定ファイルを作成します。

[Redmine]SSH公開鍵の登録

GitLabサーバgitユーザの公開鍵をRedmineサーバのred-gitユーザに登録します。

Redmineサーバで red-git ユーザにスイッチしたうえで、GitLabサーバの/var/opt/gitlab/.ssh/id_rsa.pub を Redmineサーバの /home/red-git/.ssh/authorized_keys に追記します。scp や ssh-copy-id コマンドを使用できるのであれば、使ってコピーしてください。

SSH鍵認証をパスフレーズ無しで設定するやり方は以下のエントリで説明していますのでどうぞ。

SSH公開鍵認証でパスワード無しでログインする方法

[Redmine]sshd設定

Redmineサーバで公開鍵認証を有効に変更します。

[GitLab]SSH接続確認

GitLabサーバからRedmineサーバに接続できることを確認します。

 

一旦まとめ

ここまでが、RedmineとGitLabを連携するための準備として必要な手順です。冒頭の項番としては、1~3までが完了しました。

このページでの作業は各サーバで一度実施すればOKで、この後、連携させたいリポジトリごとに行う設定は以下のエントリで説明していますので、どうぞ。

GitLabとRedmineが別サーバの場合の連携設定Part2

 

↓↓↓ 持っていると便利な一冊。

北山晋吾 インプレス 2018年01月30日
売り上げランキング : 12061

by ヨメレバ

 

レクタングル (大)

レクタングル (大)

リンクユニット(レスポンシブ)

-Linux
-,

Copyright© ぴぐろぐ , 2018 All Rights Reserved.