ページ

2012年6月1日金曜日

UbuntuにGithub連携Redmineサーバを立てる

とにかく急いでRedmineと戯れたい人向けです。

目標は
  • Ubuntu 12.04上にとにかく簡単に構築する
  • Webricを使い、Redmineをport 80に立ち上がらせる
  • githubで公開しているrepositoryと連携させる
構築のポイントは
  • redmineのインストールと設定
    インストール方法が乱立しておりますが、簡単なaptで入れます。
  • redmineのgithub対応設定
    githubと連携するためのpluginを入れます。
  • githubからredmineサーバへ更新情報転送設定
    上記pluginへの入力として、githubから更新情報を自動的に送信するgithub側の設定をします。
の3点です。
それでは、行きます。

1.  Redmineをサーバにinstall 
aptで必要なファイルをインストール
$ sudo apt-get install python-software-properties
$ sudo add-apt-repository ppa:ondrej/redmine
$ sudo apt-get update
$ sudo apt-get install redmine redmine-mysql

起動スクリプト作成
/etc/init/redmine.conf
-----
# Redmine
description "Redmine"

start on runlevel [2345]
stop on runlevel [!2345]

expect daemon
exec ruby1.8 /usr/share/redmine/script/server webrick -e production -b 0.0.0.0 --port 80 -d 
-----

起動
$ sudo service redmine start

この段階でredmineのWeb serverがport 80 (HTTP)に立ち上がっています。
browserにサーバのIPを入力すれば、見えるはずなので確認してください。

参考: http://www.redmine.org/projects/redmine/wiki/HowTo_Install_Redmine_in_Ubuntu

2. Redmine上でプロジェクト作成
github上のrepositoryに対応したredmineのプロジェクトを作成します。
管理者権限などredmine の使い方は、ここでは説明しません。
redmine helpなどを参考にしてください。
  • Projects -> New Projectで、新しいプロジェクトを作成します。
  • 中身は適当で良いですが、Identifierの値は後で使います。
3. Redmineのgithub対応設定
 redmine server用github hookを設定することにより、githubからの更新情報を受けとることができるようにします。
githubから自動的に更新情報を送信させる設定は、もう少し下でします。
$ sudo gem install json
$ cd /usr/share/redmine
$ sudo ruby1.8 script/plugin install git://github.com/koppen/redmine_github_hook.git
$ Redmine を再起動

4. Redmineがローカルで管理するgithubのremote repository設定
githubのrepository内容のミラーリングです。redmineは上記hookでgithubから送られてきた更新情報を元にこのremote repositoryを更新します。
$ cd /var/redmine/git_repositories
$ git clone --mirror git://github.com/<git_user>/<project>.git

次に、ミラーリングした/var/redmine/git_repositories/<project>.git ディレクトリをRedmineで管理するプロジェクトのリポジトリとして設定します。
  • 2.で作成したプロジェクトのSettingsを表示します。
  • Repositoryタブを選択します。
  • SCM: Gitを選択
  • Path to Repository: /var/redmine/git_repositories/<project>.git
この段階で、プロジェクトにRepositoryタブが現れ、中身が見えるようになるはずです。

5. Githubからredmineサーバへ更新情報転送設定
  • github のプロジェクトのAdmin->Service Hooks->WebHook URLsを選択
  • URLに、http://<redmine server ip>/github_hook?project_id=<project id>を入力
  • Update Settings
上記のようにURLには、Redmine の URL に "/github_hook" をくっつけたものを入力します。また、オプションとして?project_id=<project id>をつけておけば間違いないです。
<project id>には、2.でIdentifierに設定した値を入れます。

設定は以上です。

以後、Github へのpush は自動的にredmine serverへ転送され、redmineが管理しているremote(mirror) repositoryが更新されます。更新されない場合は、5.の設定が正しくない可能性があります。