5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

NAS4FreeでGitサーバ

Last updated at Posted at 2015-01-12

##1.前提
full installしてあること。
初期インストールで↓の[3]を選んでいないと、追加パッケージはインストール出来ない模様。
d9e3d5d8-97a9-4b18-6464-7978dce10189.jpeg

##2.サーバ設定(WebGUIでの作業)
ほとんど参考サイトと同じですが、FTPは使わない手順で簡素化してます。

###gitユーザの作成

メニュー -> アクセス -> ユーザとグループ

  • グループ・・・「git」グループを作成
  • ユーザ・・・「git」ユーザを作成
     - プライマリグループを「git」
     - ログインシェルを「csh」
     - ホームディレクトリを「/home/git」

###SSHサーバ設定
メニュー -> サービス -> SSH
「有効」にする

##3.サーバ設定(コマンドでの作業)
まずはインストール

# pkg_add -r gitolite2
# su - git

gitユーザにスイッチしたら、下記ファイルを準備する。

~/.cshrc
set path=($HOME/bin $path)

続いて、ssh公開鍵作成及び管理リポジトリのチェックアウトを行う。

% ssh-keygen ※全て空エンターでOK
% mkdir bin
% git clone git://github.com/sitaramc/gitolite
% gitolite/install -ln
% source ~/.cshrc
% ln -s /home/git/.ssh/id_rsa.pub /home/git/.ssh/nas4free.pub
% gitolite setup -pk $HOME/.ssh/nas4free.pub
※公開鍵のファイル名がそのままユーザ名になる模様。
 id_rsa のままは個人的に分かりにくかったので
 nas4freeという別名を作成したけど、上の2行は
  gitolite setup -pk $HOME/.ssh/id_rsa.pub
 に置き換えてもOK。
% git clone git@localhost:gitolite-admin

##4.クライアントのアカウント作成
ここの手順はクライアントマシンの数だけ実施する。

###クライアント側の作業
とりあえずlinux(CentOS)でやってますが
他環境もほとんど同じと思われる。

# yum install -y git --enablerepo=epel
# git config --global user.name "tom"
# git config --global user.email "foo.bar@baz.com"

# ssh-keygen
# cat ~/.ssh/id_rsa.pub | ssh git@サーバ名 "cat > ~/gitolite-admin/keydir/tom.pub"

###サーバ側の作業

~/gitolite-admin/conf/gitolite.conf
@developer = tom ←追記(クライアントが複数の場合はスペースで区切る)
repo gitolite-admin
    RW+     =   nas4free

repo testing
    RW+     =   @all

repo myrepos  ←追記
    RW+     =   @developer ←追記
% cd gitolite-admin
% git add keydir/tom.pub
% git commit -a
% git push

###動作確認

$ git clone git@サーバ名:myrepos

エラー無くclone出来てたらOK

###その他
リポジトリはデフォルトで ~/repositories に作られる。
ディスク容量の問題で場所を移動させてみた。

レポジトリのルートディレクトリ変更によると

~/.gitolite.rc
$REPO_BASE="repositories";

~/.gitolite.rc
$REPO_BASE="/var/git/repos";

等に書き換えると移動出来るらしい。
ただ、当方の環境では、そもそも $REPO_BASE="repositories";
といった記述が見当たず、適当に $REPO_BASE="/var/git/repos"; 等を
追記しても反映されず、仕方なくシンボリックリンクで対処。。。

% mv ~/repositories /mnt/git/repositories
% ln -s /mnt/git/repositories ~/repositories

##5.参考サイト
NAS4FreeにGitサーバを立ててみた
Gitサーバ gitolite をFreeBSDで使ってみる

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?