なるべく月額の費用を払いたくないので、自分でgitサーバを立ち上げることにしました。
その際のメモです。
いろいろつまずいたとこがあるので、同じ問題にぶつかった人のお役に立てれば幸いです。
運営環境
開発PC:Ubuntu 10.10 Desktop
設置先:Ubuntu 11.04 Server
構築方法等は、ページ下にある参考ページにより詳しく記載してありますので、そちらを参照してください。
トラブったところ&迷ったところ
既に使用しているユーザの接続
はじめに、sshの接続を許可している鍵もちのユーザを使用としたのですが、
鍵の登録がうまくいかなかったので、gitの接続専用ユーザを作成しました。
その際に、サーバからcloneしてみると下記のエラーがでました、一応頻繁に使用しているユーザなので、既に使用している鍵ファイルが壊れるのが怖かったので、諦めました。
ちなみに、エラー内容下記のようなものでした
1 2 3 4 5 |
$ git clone ssh://ユーザ名@localhost:ポート番号/gitosis-admin.git Cloning into gitosis-admin... Enter passphrase for key '/home/ユーザ名/.ssh/id_rsa': fatal: '/gitosis-admin.git' does not appear to be a git repository fatal: The remote end hung up unexpectedly |
ポートを指定して接続
sshのポートを変更している場合は、下記のようにアクセスします。
1 |
git clone ssh://ユーザ名@192.168.0.1:ポート番号 |
開発PCの設定について
sshの接続で、鍵認証を行っているんですが、それをどうやって開発PCに読み込ましていいのかに悩みました。
下記の方法で、うまくいきました。
1 2 3 4 5 6 7 8 |
$ vi /home/ユーザ名/.ssh/サーバから取得した公開鍵(場所はどこでもOK) $ chmod 700 サーバから取得した公開鍵 #sshの設定によるがStrictModes yesにしているときに必要 $ vi /home/ユーザ名(自分の使用しているもの)/.ssh/config Host サーバのIP User サーバのgit用のユーザ名 Hostname サーバのホスト名 PreferredAuthentications publickey IdentityFile ~/.ssh/鍵.key |
新規プロジェクトの追加方法
環境は以外に簡単に構築できたのですが、新規プロジェクトが、どこでどうすればいいのか迷ったので、メモしておきます。
これらの作業はすべて、開発環境(つまりgitのサーバでない場所で行いました。)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
$ cd /home/ユーザ名(開発PCのユーザ)/ #ちなみにこの場所はどこでもいいのです。 $ git clone ssh://git用のユーザ名@192.1.*.*:ポート番号/gitosis-admin.git $ cd ../gitosis-admin/ $ vi gitosis.conf [gitosis] loglevel = DEBUG #これを入れておくとエラー時に詳細を表示 [group mygroup] writable = myproject members = git用のユーザ名@git用PCのホスト名 $ pwd /home/ユーザ名(開発PCのユーザ)/gitosis-admin $ git commit -a -m 'add myproject' $ git push #作業を本番反映 #上記の作業で、myproject.gitの準備ができました。 $ cd /home/ユーザ名(開発PCのユーザ)/www/ $ git clone ssh://git用のユーザ名@192.1.*.*:ポート番号/myproject.git $ cd myproject $ touch dummy $ git add dummy $ git commit -m 'dummy to create repo' $ git push origin master:refs/heads/master #masterにして本番に反映 |