2011年12月21日水曜日

gitosisからgitoliteへの移行

gitosisのソース管理サーバを別サーバに移行する。
そのタイミングでgitoliteに移行。
移行先はUbuntu 10.04。
10.04ではaptでインストールできないので手作業で。

まずアカウントを作る。
$ sudo adduser git
パスワードは無効にしておく。
$ sudo vim /etc/shadow
git:$6$...:0:...
となっている部分を
git:*:0:...
に書き換える。

gitアカウントに乗り移る。
$ sudo su git
(git)$ cd
大抵のチュートリアルは別PCからセットアップするような手順になっているが
諸事情によりサーバ側でやる。

ssh鍵作る。
(git)$ ssh-keygen
gitoliteをgithubからもらってくる。
(git)$ git clone https://github.com/sitaramc/gitolite.git
インストールはrootで。
(git)$ exit
$ cd /home/git
$ sudo mkdir -p /usr/local/
$ sudo gitolite/src/gl-system-install
gitアカウントのssh鍵でセットアップしようと思うが
id_rsa.pubという名前のままはアレなので。
$ sudo su git
(git)$ cp .ssh/id_rsa.pub git-server.pub
(git)$ gl-setup git-server.pub
エディタが開くがそのまま閉じる。

別サーバからリポジトリを移行。
(git)$ cd repositories
(git)$ rsync -azr gitosis@gitserver:/home/gitosis/repositories/* .
作業ディレクトリを作って、gitoliteの管理用リポジトリを取得。
(git)$ cd ~
(git)$ mkdir work
(git)$ cd work
(git)$ git clone git@localhost:/gitolite-admin.git
gitosisの管理用リポジトリも取得。
(git)$ git clone ~/repositories/gitosis-admin.git
公開鍵をgitosisからgitoliteにコピー。
(git)$ cp gitosis-admin/keydir/* gitolite-admin/keydir/
gitosis.confをgitolite用に変換。
(git)$ gl-conf-convert < gitosis-admin/gitosis.conf > gitolite.conf
このgitolite.confにはgitolite-adminにアクセスするための設定が無いので、
追加してから上書き。
(git)$ cat gitolite-admin/conf/gitolite.conf >> gitolite.conf
(git)$ cp gitolite.conf gitolite-admin/conf/gitolite.conf
変更をcommitし、push
(git)$ cd gitolite-admin
(git)$ git add keydir/*
(git)$ git add conf/gitolite.conf
(git)$ git commit -m 'migrate'
(git)$ git push
要らないディレクトリやファイルを削除。
(git)$ rm -rf ~/work ~/gitolite
(git)$ exit

0 件のコメント:

コメントを投稿