- 2008-11-08 (土) 16:47
- server
最近流行りの Git。現段階で github 等のホスティングサービスを使う人が多いと思います(もしくはローカルだけで使ってるか)。github のようなホスティングサービスを使っている場合は、github 自身がリモートリポジトリの管理をしてくれるため、ssh の鍵を github に登録するだけで僕たちは Git の恩恵に預ることができます。リポジトリの操作は大概 github のウェブアプリケーション越しで済んでしまいます。楽です。
しかし、このリモートリポジトリを自前のサーバでホストする、あるいは企業のバージョン管理ツールとして Git を使うとなると俄然敷居が高くなるように感じます。github のウェブアプリケーションとその周辺ツールがオプソで公開されていれば非常に嬉しいのですが、まぁ現時点ではそんなおいしい話はない訳で、ないものねだりになってしまいます。
そのため、特に企業で導入する際にはリポジトリ群を管理するスクリプトを自前で作る必要がでてきます。というのも、リポジトリの管理スクリプト(例えば、ローカルにあるリポジトリをリモートに配備する、リモートのリポジトリを削除する等々…)がないと、新しいプロジェクト用にリポジトリを作成する度に一々サーバにシェルログインして git init –bare hoge.git とかしなければならなくて非常に面倒です。しかも、皆がリポジトリをホストしているサーバにログインできる状態はセキュリティ的にも酷い状況になり良くありません(これは git-shell 使うという手はあります)。
僕もこのGitリポジトリ群の管理に関しては何か良い管理ツールはないものかと探していました。ですが、すぐに良いものを見つけることができなかったので、必要に迫られて結局自前でスクリプトを書くことにしました。サーバにリポジトリを作成して git remote add してサーバ側の bare リポジトリに push するとか、サーバ上に存在するリポジトリ一覧の URL を取得するとか、リモートリポジトリを削除するとか、そんなタスクをコマンド化しました。(中途半端な状態で開発止まってしまってますけどね…)
Git は、それを使ってプロジェクトのバージョン管理をするといった面ではブランチをバンバン切って、それらのブランチを簡単にマージすることができるので快適で良いです。好きです。Git を使って何かを開発している時はね。
開発中に恩恵をくれる Git も、リポジトリ自体を管理するということになると面倒になる(リポジトリの数が増えれば増える程しんどくなる)。責務の切りわけという意味で正しいですけど、Git 自体はそこをサポートしてくれません。
ここに一つ、Git 導入への壁が存在するような気がします。
さて、ここからが本題です。Git 導入には上に書いたような問題があります(少なくとも僕はそう思ってる)。これは解消しておきたいと思い、自分でそれっぽいもの作ったり、ググってそれっぽいものがないか調べたりしてきました(ごく最近ですけどね)。
そんなこんなでようやく gitosis というソフトウェアを見つけました。前フリがやたらと長くなってしまいましたが、このエントリは、この gitosis を紹介するというのが主旨です。
gitosis について書かれてるブログエントリの一部を引用します。
Hosting Git repositories, The Easy (and Secure) Way
how to host and manage Git repositories with access control, easily and safely. I use an up and coming tool called gitosis that my friend Tv wrote to help make hosting git repos easier and safer. It manages multiple repositories under one user account, using SSH keys to identify users. However, users do *not* need shell accounts on the server,
まじ!僕が欲しかったものですよ。エントリの上記の部分を読んで思わずニヤッとしてしまいましたw
gitosis にはこんな特徴があるようです。
- リポジトリに対するアクセス制御
- 安全 # 認証は公開鍵で行い、通信にはSSHを使う。設定が簡単かどうかは人によるので一概に簡単とは言えない
- 一つのアカウントで複数リポジトリを管理 # もちろん複数アカウントでも運用できる
- 公開鍵でユーザを識別する
- リポジトリにアクセスするアカウントはサーバへのログインを許可されてなくてイイ! # 自分で ~/.ssh/authorized_keys を管理する必要はない
これを知らずに自前でスクリプト書いてしまったことを悔やむ。しかもリンク先のエントリは去年のだし…無念
無念なのは別に良いとして、良いもの見つけたので早速使ってみました。エントリが長くなってきたので次回に持ち越しますが、gitosis のインストールや設定やらをエントリにしておこうと思います。↑のエントリ読めば使えますけどね…
gitosis については何回かに分けてエントリを書きます。
- Newer: gitosis - Git リポジトリ群の管理とアクセス制御 vol.1
- Older: iptables の設定を変更する際の作業手順
Comments:2
- あ 08-11-17 (月) 1:42
-
gitoriousというものが公開されていて、一部ではGitHubクローンとか呼ばれていたりします。
- kjim 08-11-20 (木) 2:57
-
そうか Gitorious は自分自身のコードも公開していたんですね。セルフマネジメントか、いいですね。情報ありがとうございます。
Trackbacks:3
- Trackback URL for this entry
- http://openbooth.org/archives/60.html/trackback
- Listed below are links to weblogs that reference
- gitosis - Git リポジトリ群の管理とアクセス制御 vol.0 from openbooth
- pingback from gitosis - Git リポジトリ群の管理とアクセス制御 vol.1 - openbooth 08-11-08 (土) 17:27
-
[...] Older [...]
- pingback from 今週の気になるアレJuly 27th 09-07-27 (月) 22:49
-
[...] gitosis – Git リポジトリ群の管理とアクセス制御 vol.0 – openbooth を共有しました。 [...]
- pingback from yamakk blog » Blog Archive » Gitのユーザ管理をgitosisで設定する 10-08-12 (木) 19:53
-
[...] gitosis – Git リポジトリ群の管理とアクセス制御 vol.0 gitosis – Git リポジトリ群の管理とアクセス制御 vol.1 [...]