Yukiharu YABUKI の tDiary
このtDiaryを検索します。
2009-07-28 [長年日記]
_ [Debian] gitosis:ユーザの追加とプロジェクトの追加
この記事は、 gitosis : setting of Debian GNU/Linux Lenny way の続きです。gitosis で sandbox リポジトリを作ろうといいながら、来客や契約書の作成やレビューなどで記録に残すのが遅れました。
いまから書くことは、基本的には /usr/share/doc/gitosis/README.rst.gz を見ると判ります。私がミスで設定に悩んだ時間分は、あなた方の時間の節約になるかと思います。
ssh鍵のファイル名について、
id_rsa.pub のファイル名を変更したのには理由があります。gitosis はアカウント名として公開鍵のファイル名から拡張子 .pub を除いた部分を使用します。そのため keydir に保存するときは、公開鍵のファイル名を gitosis.conf で指定したアカウント名と併せておく必要があるのです。
[gitosis - Git リポジトリ群の管理とアクセス制御 vol.2より引用]
とありますが、私の場合、yabuki@yelona:~/scm/git/Ernalda/gitosis-admin$ ls -la keydir/ 合計 16 drwxr-xr-x 2 yabuki yabuki 4096 2009-07-28 14:15 . drwxr-xr-x 4 yabuki yabuki 4096 2009-07-28 15:44 .. -rw-r--r-- 1 yabuki yabuki 399 2009-07-28 14:15 kouji-t.pub -rw-r--r-- 1 yabuki yabuki 395 2009-07-14 10:17 yabuki@yelona.pubのような形でも利用していることを報告しておきます。とはいえ、unixアカウント名.pub はわかりやすいのでお勧めの鍵ファイル管理方法ではないでしょうか。実際、私も別人の鍵ファイル管理は unixアカウント名.pub にしてしまいました。
- git clone してある、gitosis-admin の gitosis.conf に、group を追加する。
[group myteam] members = jdoe writable = myproject
が /usr/share/doc/gitosis/README.rst.gz に記述してある例ですが、これでは、自分が欲しい例としては足りませんでした。その心は、複数の unix account を列挙するときのセパレーターは、space " " であって、comma "," じゃないことに気がつくまで時間を無駄にした。注意深い人ならば、一回で上手く行くだろうが。そこで私の例は[group kiire-japan] members = yabuki@yelona kouji-t writable = sandbox
としておきます。 - で、鍵を keydir/ にコピーして git add して commit して、用意完了です。
- 例だと、
mkdir myproject cd mypyroject git init git remote add myserver gitosis@MYSERVER:myproject.git # do some work, git add and commit files git push myserver master:refs/heads/master
になってますけど、ちゃーんと設定できたらcd /tmp mkdir -p yabuki/sandbox cd yabuki/sandbox git init git remote add origin gitosis@192.168.11.250:sandbox.git # origin とかは man git-remote したらわかるけど name なので、git remote rm origin # とかしたらいったん消してまた付け替えられます。 # それで、ここでリポジトリの説明をするような、READMEファイルを作っておくのがいいんじゃない # だろうか。で、commitしておく。 $ git push origin master:refs/heads/master Initialized empty Git repository in /srv/gitosis/repositories/sandbox.git/ Counting objects: 3, done. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 297 bytes, done. Total 3 (delta 0), reused 0 (delta 0) To gitosis@192.168.11.250:sandbox.git * [new branch] master -> master
ちなみに認証できてない時(つまり projectのメンバーになってない時)には、$ git push origin master:refs/heads/master ERROR:gitosis.serve.main:Repository read access denied fatal: The remote end hung up unexpectedly
と表示されてました。ちゃんと access denied になってますね。
(以下2009.07.30更新)
gitosisはリポジトリを階層化することで整理しやすくする。たとえば
company+ +web +document+tech +presskit +minutes(議事録) や customer1+ +project1 +project2 +project3 customer2+ +project1 +project2 +project3とかを想像してほしい。関連する人間が変わればアクセス制御をしたくなる場合があるだろう。
gitosis はコンテナ内にディレクトリ階層を作れるというのがポイントです。ここでは private というディレクトリを掘ってみました。private という名前に特に意味はありません(hoge でも fuga でも何でも良い)。
[gitosis - Git リポジトリ群の管理とアクセス制御 vol.2より引用]
[group yabuki] members = yabuki@yelona writable = private/yabukiとして
$ git commit -m "create private/yabuki" gitosis.conf Created commit b176627: create private/yabuki 1 files changed, 4 insertions(+), 0 deletions(-) $ git push Counting objects: 5, done. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 375 bytes, done. Total 3 (delta 1), reused 0 (delta 0) To gitosis@192.168.11.250:gitosis-admin.git d1d3b73..b176627 master -> master
mkdir -p /tmp/yab/yabuki-private-repo cd /tmp/yab/yabuki-private-repo/ # READMEファイルをつくったり、 # docディレクトリにファイルをいれたり、 # ソースを整理してsrcに入れたり git add README doc/ src/ git commit -a -m "init yabuki-private-repo and commit" git remote add origin gitosis@192.168.11.250:private/yabuki.git git push origin masterとすると
yabuki@Ernalda:~$ sudo ls -la /srv/gitosis/repositories/ 合計 20 drwxr-xr-x 5 gitosis gitosis 4096 2009-07-29 22:26 . drwxr-xr-x 5 gitosis gitosis 4096 2009-07-29 02:44 .. drwxr-x--- 8 gitosis gitosis 4096 2009-07-29 14:08 gitosis-admin.git drwxr-x--- 3 gitosis gitosis 4096 2009-07-29 22:26 private drwxr-x--- 7 gitosis gitosis 4096 2009-07-28 15:45 sandbox.git yabuki@Ernalda:~$ sudo ls -la /srv/gitosis/repositories/private 合計 12 drwxr-x--- 3 gitosis gitosis 4096 2009-07-29 22:26 . drwxr-xr-x 5 gitosis gitosis 4096 2009-07-29 22:26 .. drwxr-x--- 7 gitosis gitosis 4096 2009-07-29 22:26 yabuki.gitになっています。
_ [Benchmark] EXT4, Btrfs, NILFS2 Performance Benchmarks
ぼちぼちとベンチマーク系の記事を後から参照しやすいように、カテゴライズしていこうかと。徐々にさかのぼって処理できたらいいな。(http://www.phoronix.com/scan.php?page=article&item=ext4_btrfs_nilfs2&num=1)
_ USENIX Security '09 is coming to Montreal, Canada, August 10-14
八月のカナダのモントリオールかあ。(http://www.usenix.org/events/sec09/index.html)