読者です 読者をやめる 読者になる 読者になる

Around the modern stone age.

近年はシリコン(石)の半導体から進化した便利なもので溢れる時代。そんな気になった事や試した事など徒然と記す。

スポンサーリンク

【Ubuntu 16.04 LTS Server】Gitリポジトリ管理ツール「gitolite」を使う

Linux Git Ubuntu

Gitリポジトリ管理には、GitLabとか高機能のものもあるが、手軽に使えそうなので「gitolite」を導入する。

gitoliteのaptパッケージはなくなってるので、GitHubから取得しREADMEを参考にインストールする。
尚、gitパッケージはインストール済みとする。
gitoliteでは、管理リポジトリのファイルを編集しpushする事で、ユーザ追加・リポジトリ追加・アクセス制限などができる。

ユーザ名「git」を作成する

$ sudo adduser --system --shell /bin/bash --group --disabled-password --home /home/git git
$ sudo su - git      (gitユーザにログインする)
$ mkdir -p $HOME/bin
$ cp /etc/skel/.* .     ($HOME/bin にPATHを通す為にログインスクリプトを取得)
$ exit

※ユーザ名は「git」以外でも可能なよう。

管理する端末ユーザで、SSHの公開鍵を作成し、gitユーザからアクセスできる所に置いておく

$ ssh-keygen -t rsa
$ cp .ssh/id_rsa.pub /tmp/hoge.pub

gitユーザで、GitHubよりgitoliteを取得しインストール

$ sudo su - git
$ git clone git://github.com/sitaramc/gitolite
$ gitolite/install -to $HOME/bin
$ gitolite setup -pk /tmp/hoge.pub     ($HOME/binにPATHが通ってるものとする)
$ exit

※リポジトリの所在は、/home/git/repositories/ となる。

/home/git/.gitolite.rc の編集

新しく作成するリポジトリが、git-daemon,gitwebのサービスからReadできるように、gitグループからのアクセス権限が設定されるようにしておく。(gitグループに、各サービスのユーザを追加して対応)

#UMASK => 0077,
UMASK => 0027,

※git-daemon, gitwebとの連携 は、それぞれのページ参照

リポジトリのアクセス権変更

gitグループのユーザーがリポジトリにアクセスできるようにするため、リポジトリがあるディレクトリとリポジトリのディレクトリ・ファイルのパーミションを変更する。

# chmod 750 /home/git/repositoris/
# chmod g+r /home/git/projects.list

# chmod -R g+r /home/git/repositories/testging.git
# find /home/git/repositories/testing.git -type d -exec chmod g+x {} +

管理するパソコンのユーザから、管理リポジトリデータを取得

$ git clone git@<サーバIP>:gitolite-admin
  • gitolite-admin/conf/フォルダの、gitolite.conf のファイルを編集しpushする事で管理する。
  • ユーザの追加はkeydir/に公開鍵のファイルを追加してcommit,push。同じユーザ名で複数のマシンからアクセスしたい場合は、user@hostname.pubというファイル形式にすればOK。

テスト用リポジトリの取得して動作確認する

$ git clone git@<サーバIP>:testing

留意点

  • アクセスユーザに、「@all」を指定すると、daemon, gitweb も同時に指定した事になる。

教訓

日本語の説明が欲しいくて、とにかくググってWebを探したりするが、時にはオリジナルの原文を参考にした方が早い。

参考

入門Git

入門Git