Thursday, September 3, 2009

redmine & git repo on debian

1.setup redmine

普通にrubyの環境があって、passengerが入ってて、redmineが/var/wwwの下に展開されています。
サーバのホスト名:base08。
セットアップしているマシンのユーザがtknv。
#/etc/apache2/httpd.conf
LoadModule passenger_module /home/tknv/.gem/ruby/1.8/gems/passenger-2.2.4/ext/apache2/mod_passenger.so
PassengerRoot /home/tknv/.gem/ruby/1.8/gems/passenger-2.2.4
PassengerRuby /usr/bin/ruby1.8

PassengerDefaultUser www

ServerName base08
DocumentRoot /var/www/redmine/public


で、redmineで使用するdbの準備が完了していれば、http://base08でredmineが表示されるはず。
表示されないようだったらサイトで確認
サーバで/var/log/apache2のログを見てもおかしいところがなければ、redmine/tmpのパーミッションが強すぎだったり、666では起動する。または、/etc/apache2/.htaccessファイルがあっていないとか、、、
2.git リポジトリーを立てる。

このサイトが参考になります。
概要:ここで作成したgitユーザがこのbase08ホストで、gitのリポジトリーを立てたり、アップデートしたりします。
注意は説明で行われている、gitリポジトリーを使用するユーザ、gitユーザもbase08ホストで使用しますが、通常業務(趣味ではやらない)で使用するほうで、gitosisの設定を行います。
下記ユーザのマシンでの設定
#~/gitosis-admin/gitosis.conf
[gitosis]

[group gitosis-admin]
writable = gitosis-admin
members = aaa@TKNV bbb@bbc usr1@base08 root@base08

[group dev-Ateam]
writable = project1 project2 project-foo project-wow
members = aaa@TKNV tuka@REP USER1@thinkpad-x300 usr1@base08 root@base08 git@base08

# git@base08が今回の肝です。

[repo project1]
gitweb = yes
owner = tknv@amateras
description = module for UI and support Ajax

大事なのはgit@base08
アカウントをredmineで登録したいリポジトリーのグループに入れておくこと。
あとは、リンクにあるように、/gitosis-admin/keydirに、git@base.pubのように、sshの公開鍵を入れて、gitでサーバにプッシュ。必要なユーザ分、全部おこなう。
3.サーバ上でどうやって、gitリポジトリーを作成しpushのたびに更新するか。

ここ参考になります。しかしながら、ネットにある大抵のHowToは簡単には最近、うまくゆかない。こちらのスキルレベルもあるが、こんだけユーザが多いと、ゴミ情報がたくさん、また、最近は新しいこうゆうテクノロジーが出てくると、とにかくやってみて(やればいいのだが、未検証もあり)サイトにアップする人が多く、間違えもそのままコピペしていたり、、、で
#~/home/git/repositories//hooks/post-update
export GIT_DIR=/home/git/checkout//.git

pushd /home/git/checkout/ > /dev/null
git reset --hard
git pull
popd > /dev/null

WORKDIR="/home/git/checkout/"

/usr/bin/git-update-server-info

unset GIT_DIR

で、先のサイトにもあるが、Don’t forget to create a _local git copy_ (via git clone git@localhost:.git in /home/git/checkout (or whatever folder you prefer)
しかし、このままでも、まだ、無理で、もう2つやることが必要で、まずは、


1.先の今回の肝、git@base08がこの、cloneした、ソースのユーザになっている必要がある。
2.ssh-agentでこのgit@base08ユーザの秘密鍵の方を登録して、パスワード認証を無しにする必要がある。


チェックリスト
  • git@~ ユーザがredmineでブラウジングしたいgitリポジトリーのアクセス許可グループに入っているか?(gitosis.conf)
  • git@~ ユーザのsshの秘密鍵がサーバ(redmineとgitリポジトリのある)にてssh-agentで追加され、パスワード認証が不要になっているか?
  • サーバ(redmineとgitリポジトリのある)の/home/git/checkout/のユーザがgit@~ であるか?

勘違いでした。
git clone で問題ない、、、

How to create repo from remote(not at server)

No comments:

Post a Comment